我不确定为什么Schema.ObjectId不能处理我的模型,我有最新版本的mongoose。
这是我的模特
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;
});
}
我也试过这个post仍然无效。任何人都可以帮忙吗?感谢
这是我的数据的json文件,而且它很奇怪,memberId没有显示
[
{
"_id": "587da4a9141f1619f42ac66d",
"dateCreated": "2017-01-17T04:59:21.000Z",
"team_name": "Sample Team",
"__v": 0
}
]
答案 0 :(得分:0)
我认为您的架构没有任何问题。
Mongoose仅为ObjectId
字段定义了新的_id
。对于ObjectId
类型的所有其他字段,您必须向其传递新的ObjectId
值。
因此,如果字段memberId
用于保存引用其他集合中成员的ObjectId
(例如成员),则可以传递成员成员的_id
值收集到memberId
。 (同样在架构中添加ref
对该集合会很有帮助)
如果memberId是一个全新的ObjectId
且与任何其他集合无关,那么您可以使用 ObjectId
功能生成一个新的唯一mongoose.Types.ObjectId()
,将它保存到memberId字段。
在保存newMember之前这样做:
newMember.memberId = mongoose.Types.ObjectId();
希望有所帮助!