我想在我的 Mongoose 模型中有一个对象(例如“成分”),其中键是 ObjectID,它们的值是数字。有可能这样做吗?我应该如何定义我的 Mongoose 模式?您可以在下面找到示例。
示例 JSON:
{
"_id": ""5a2539b41c574006c46f1a07",
"name": "xyz",
"ingredients": {
"5a23f5e6159f5c3438c75971": 50,
"5a23f60b159f5c3438c75972": 50,
"5a255b04c9d9c40ac8927dd5": 50
}
}
提前感谢您的帮助。
最佳答案
你可以使用混合模式
{
"_id": ""5a2539b41c574006c46f1a07",
"name": "xyz",
"ingredients": mongoose.Schema.Types.mix
}
引用 how to create dynamic document keys in mongodb
插入动态 key 就是这么简单
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);
});
}
我知道你以后还需要更新动态 key 引用Update Mongo array: remove dynamic key
collection.update(
{"_id": ObjectId("5a2539b41c574006c46f1a07")},
{"$unset": {"ingredients.5a23f5e6159f5c3438c75971": ""}}
)
关于node.js - Mongoose - ObjectID 作为键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47682276/