9

是否可以保存已填充的文档?

我正在尝试做:

var Group = new Db['Group']();
for (var i=0; i<50; i++)
    Db.Members.push({ User: { _id: "521014731e27b1b008000002"}, pseudo: 'John' });
Group.save();

模式

var GroupSchemaModel = {
    Members: [{
        User: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
        updated_at: { type: Date, required: true, default: Date.now }
    }]
};

我得到错误

{ message: 'Cast to ObjectId failed for value "[object Object]" at path "User"',
name: 'CastError',
type: 'ObjectId',
value: { _id: '521014731e27b1b008000002' },
path: 'User' }
4

1 回答 1

1

这个:

User: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },

告诉猫鼬该User字段将是ObjectId指向另一个集合的类型的引用集合。

另一方面,您正试图在其中插入一个对象:

Db.Members.push({ User: { _id: "521014731e27b1b008000002"}, pseudo: 'John' });

Mongoose 尝试将其投射到ObjectId并失败。pseudo除了字段不在组模式中的事实之外。

试试这个:

Db.Members.push({User: mongoose.Types.ObjectId("521014731e27b1b008000002"), updated_at: whatever});
于 2013-08-24T20:32:06.453 回答