我试图通过使用两个参数查找来将名称插入到我的架构的“data_stream_map”数组中,
如下,
var query = {
'_id': new ObjectId("594261a0ea2d89001c851424"),
'inputs.name': "name1"
};
return WFWorkflowModel.findOneAndUpdate(query, {$addToSet: {'inputs.$.data_stream_map': "121_name1"}}).then(function (result) {
return true;
}, function (error) {
console.error("WFEditor micro service - update dataStream.");
return error;
});
互联网上还没有任何东西适合我。但当涉及到 Robomongo 0.9.0 时,这是有效的,
db.getCollection('wfcomponents').findOneAndUpdate({
_id: ObjectId("594261a0ea2d89001c851424"),
'inputs.name': "name1"
}, {$addToSet: {'inputs.$.data_stream_map': "120_name1"}})
Mongoose 文档如下,
{
"_id" : ObjectId("594261a0ea2d89001c851424"),
"key" : "task",
"description" : "",
"__v" : 0,
"updated" : ISODate("2017-06-12T07:08:58.462Z"),
"created" : ISODate("2017-06-12T07:08:44.079Z"),
"gridLocation" : {
"y" : 1,
"x" : 7
},
"inputs" : [
{
"name" : "name1",
"data_stream_map" : [
]
}
]
}
使用的 Mongoose 版本是“mongoose”:“^4.6.5”,我没有线索,有人可以帮助我解决这个问题吗?我引用了很多堆栈溢出问题,但仍然没有解决。
最佳答案
1.) 将 Robomongo 更新到 1.0,它在系统中有必要的更新。 2.)查看我提供的这个链接,不确定您的问题是否重复,但这有很好的答案,我认为与您的问题有关,并且快速提示您无法更新 mongodb 中的 ids,您需要删除并再次创建(在提供的链接中进行了解释)。希望我正确地阅读了问题,祝你好运。
附注如果您只是尝试查询输入,请确保您的文件已正确链接,即您需要正确地调用所有模块。如果你有设置 mongoose 使用 find、findOne、findById、where。提供了链接。再次希望我能正确回答这个问题,不确定你想要实现什么目标。
How update the _id of one MongoDB Document?
关于javascript - Mongoose 按 _id 查找和更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44568437/