Mongoose - ObjectID作为键?

7

我希望在我的mongoose模型中有一个对象(例如“ingredients”),其中键是ObjectIDs,它们的值是数字。这是否可能?我应该如何定义我的mongoose模式?您可以在下面找到一个示例。

示例JSON:

  {
    "_id": ""5a2539b41c574006c46f1a07",
    "name": "xyz",
    "ingredients": {
        "5a23f5e6159f5c3438c75971": 50,
        "5a23f60b159f5c3438c75972": 50,
        "5a255b04c9d9c40ac8927dd5": 50
    }
  }

Thank you for your help in advance.


“键是 objectID,值是数字”的意思是什么?您想创建自己的键吗? - Anirudh Bagri
1个回答

2
你可以使用混合模式架构。
{
    "_id": ""5a2539b41c574006c46f1a07",
    "name": "xyz",
    "ingredients": mongoose.Schema.Types.mix
  }

参考如何在MongoDB中创建动态文档键

插入动态键非常简单

insertData_dynamic_colone: function(collection, colone1, colone2) {
    var obj = {};
    obj[colone1] = "14";
    obj[colone2] = "15";
    dbObject.collection(collection).insertOne(obj, function(err, result) {
        assert.equal(err, null);         
    });
}

我知道你未来也需要更新动态密钥,可以参考更新Mongo数组:删除动态密钥

collection.update(
    {"_id": ObjectId("5a2539b41c574006c46f1a07")},
    {"$unset": {"ingredients.5a23f5e6159f5c3438c75971": ""}}
)

谢谢您的回答和未来的参考 :) - k6pib6r6
愉快的编码 :) - shivshankar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接