是否可以保存已填充的文档?
我想做:
var Group = new Db['Group']();
for (var i=0; i<50; i++)
Db.Members.push({ User: { _id: "521014731e27b1b008000002"}, pseudo: 'John' });
Group.save();
Run Code Online (Sandbox Code Playgroud)
架构
var GroupSchemaModel = {
Members: [{
User: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
updated_at: { type: Date, required: true, default: Date.now }
}]
};
Run Code Online (Sandbox Code Playgroud)
我收到了错误
{ message: 'Cast to ObjectId failed for value "[object Object]" at path "User"',
name: 'CastError',
type: 'ObjectId',
value: { _id: '521014731e27b1b008000002' },
path: 'User' }
Run Code Online (Sandbox Code Playgroud)
这:
User: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
Run Code Online (Sandbox Code Playgroud)
告诉 mongoose 该字段将是指向另一个集合User的类型的引用的集合。ObjectId
另一方面,您正尝试在那里插入一个对象:
Db.Members.push({ User: { _id: "521014731e27b1b008000002"}, pseudo: 'John' });
Run Code Online (Sandbox Code Playgroud)
Mongoose 尝试将其投射到ObjectId但失败了。除此之外,该pseudo字段不在组架构中。
试试这个:
Db.Members.push({User: mongoose.Types.ObjectId("521014731e27b1b008000002"), updated_at: whatever});
Run Code Online (Sandbox Code Playgroud)