【问题标题】:Mongoose: Save a JSON with embedded documents, using schemas with referencesMongoose:使用带有引用的模式保存带有嵌入式文档的 JSON
【发布时间】:2016-03-17 15:12:24
【问题描述】:

每个人。我试图像这样保存一个 JSON (RecordNameVersion)

{   "created":"2015-11-10 15:47:41.107Z",
    "id_user" : "01",
    "version" : "1",
    "RecordName" : {"status" : "1", "name": "Paul"}
}

在我的节点应用程序中,我有这个用于架构

var RecordNameVersion = new Schema({
    _id : Number,
    created : {type: Date, default: Date.now},
    id_user : String,
    version : { type: Number, min: 0 },
    RecordName : {type: Schema.Types.ObjectId, ref: 'TaxonRecordName'}
});

var RecordName = new Schema({
trn_version : { type: Number, ref: 'RecordNameVersion' },
status : String,
name : String
});

当我尝试发布 Json 时,会生成此错误。

"message": "RecordNameVersion validation failed",
"name": "ValidationError",

是否可以一次性保存所有 JSON?或者是否有必要嵌入记录名称的架构? 我更喜欢 RecordNameVersion y RecordName 的不同集合。

或者我应该将 RecordNameVersion 的 id 放在 RecordName 的 json 中

【问题讨论】:

    标签: json node.js mongodb mongoose


    【解决方案1】:

    你保存 RecordNameVersion 的错误是告诉你字段的值

    RecordName
    

    想成为一个参考,而不是一些实际的对象。所以综合其参考为:

    {
        "_id": mongoose.Types.ObjectId("123456789000")
        "created":"2015-11-10 15:47:41.107Z",
        "id_user" : "01",
        "version" : "1",
        "RecordName" : mongoose.Types.ObjectId("123456789055")
    }
    

    那么对应的 RecordName 保存可以是:

    {
        "_id": mongoose.Types.ObjectId("123456789055")
        "status":"1",
        "name" : "Paul",
        "version" : "1",
        "trn_version" : mongoose.Types.ObjectId("123456789000")
    }
    

    注意两个文档中 _id 字段的值

    【讨论】:

      猜你喜欢
      • 2015-07-02
      • 1970-01-01
      • 2011-02-15
      • 2016-03-22
      • 1970-01-01
      • 1970-01-01
      • 2019-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多