我不确定为什么Schema.ObjectId不适用于我的模型,我有最新版本的猫鼬。
这是我的模型
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ObjectId = Schema.ObjectId;
var TeamSchema = new mongoose.Schema({
team_name : {
type: String,
index : true
},
dateCreated : {
type : Date
},
memberId : {
type : Schema.Types.ObjectId
}
});
var Team = module.exports = mongoose.model('Team', TeamSchema);
module.exports.createTeam = function(newTeam, callback){
newTeam.save(function(err){
if (err) throw err;
});
}
我也试过这篇文章仍然不起作用。 任何人都可以帮忙吗? 谢谢
这是我数据的 JSON 文件,奇怪的是成员 ID 没有显示
[
{
"_id": "587da4a9141f1619f42ac66d",
"dateCreated": "2017-01-17T04:59:21.000Z",
"team_name": "Sample Team",
"__v": 0
}
]
我认为您的架构没有任何问题。
猫鼬只为_id
字段定义一个新的ObjectId
。对于 ObjectId
类型的所有其他字段,您必须向其传递新的ObjectId
值。
因此,如果字段memberId
用于保存引用另一个集合中的成员(例如成员)的ObjectId
,则可以将成员集合的成员的_id
值传递到memberId
中。(此外,将架构中的ref
添加到该集合也会有所帮助)
如果 memberId 是一个全新的ObjectId
并且与任何其他集合无关,则可以使用函数 mongoose.Types.ObjectId()
生成一个新的唯一ObjectId
,并将其保存到 memberId 字段。
因此,在保存新会员之前执行此操作:
newMember.memberId = mongoose.Types.ObjectId();
希望对您有所帮助!