Mongoose 架构数组路径的值无效

Mongoose 架构数组路径的值无效,mongoose,schema,Mongoose,Schema,我正在尝试构建的评论模型包含:Reply和CommentThread。CommentThread包含Reply,Reply可以自己递归 /models/comment.js: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var replySchema = new Schema({ username: String, timestamp: { type: Date, default: Date.now

我正在尝试构建的评论模型包含:Reply和CommentThread。CommentThread包含Reply,Reply可以自己递归

/models/comment.js:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var replySchema = new Schema({
  username: String,
  timestamp: { type: Date, default: Date.now },
  body: String,
  replies: [replySchema]
}, {_id: true});

var commentThreadSchema = new Schema({
  title: String,
  replies: [replySchema]
});

var Reply = mongoose.model('Reply', replySchema);
var CommentThread = mongoose.model('CommentThread', commentThreadSchema);

module.exports = {
    Reply: Reply,
    CommentThread: CommentThread
};
我的错误消息是:架构数组路径“replies”的值无效。replySchema不能将自身用作值类型吗?还是其他原因

c:\Users\jacki_000\projects\invictusblog\node_modules\mongoose\lib\schema.js:297

      throw new TypeError('Invalid value for schema Array path `'+ prefix + ke
            ^
TypeError: Invalid value for schema Array path `replies`
    at Schema.add (c:\Users\jacki_000\projects\invictusblog\node_modules\mongoos
e\lib\schema.js:297:13)
    at new Schema (c:\Users\jacki_000\projects\invictusblog\node_modules\mongoos
e\lib\schema.js:87:10)
    at Object.<anonymous> (c:\Users\jacki_000\projects\invictusblog\models\comme
nt.js:4:19)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (c:\Users\jacki_000\projects\invictusblog\services\com
ment-service.js:1:83)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
c:\Users\jacki\u 000\projects\invicutsblog\node\u modules\mongoose\lib\schema.js:297
抛出新的TypeError('架构数组路径`'的值无效+前缀+ke
^
TypeError:架构数组路径“回复”的值无效`
在Schema.add(c:\Users\jacki\u 000\projects\invicutsblog\node\u modules\mongoos
e\lib\schema.js:297:13)
在新模式下(c:\Users\jacki\u 000\projects\invicutsblog\node\u modules\mongoos
e\lib\schema.js:87:10)
对象处。(c:\Users\jacki\u 000\projects\Invicutsblog\models\comme)
新界西:4:19)
在模块处编译(Module.js:460:26)
在Object.Module.\u extensions..js(Module.js:478:10)
在Module.load(Module.js:355:32)
在Function.Module.\u加载(Module.js:310:12)
at Module.require(Module.js:365:17)
根据需要(module.js:384:17)
对象处。(c:\Users\jacki\u 000\projects\Invicutsblog\services\com
(新闻社js:1:83)
在模块处编译(Module.js:460:26)
在Object.Module.\u extensions..js(Module.js:478:10)

参见上面的示例,您需要执行以下操作

var replySchema = new Schema();
replyschema.add({
  username: String,
  timestamp: { type: Date, default: Date.now },
  body: String,
  replies: [replySchema]
});

npm安装mongoose@3.8.5


对于快速修复

谢谢。它可以工作。这是因为在使用replySchema之前,它应该被定义吗?谢谢,从旧版本的mongoose迁移时也有同样的问题。问题是如何定义架构。
.add
工作得很好。