Schema.ObjectId 不起作用



我不确定为什么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();

希望对您有所帮助!

最新更新