javascript - Mongoose 按 _id 查找和更新

标签 javascript node.js mongodb mongoose mongoose-schema

我试图通过使用两个参数查找来将名称插入到我的架构的“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?

http://mongoosejs.com/docs/models.html

http://mongoosejs.com/docs/queries.html

关于javascript - Mongoose 按 _id 查找和更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44568437/

相关文章:

mongodb - 如何使用单个 shell 脚本使用多个/三个节点/服务器/机器创建 MongoDB 集群?

javascript - 如何动态地将导航栏添加到 jQuery Mobile 应用程序

javascript - 内联 SVG 动画最佳实践

javascript - 从 javascript 在服务器上创建日志条目的最有效方法是什么?

MongoDB Chain 查询,伪事务

c# - 统计 MongoDB 中的项目数

php - Javascript-Ajax 无法发送任何数据

node.js - 在 OS X 上安装 Grunt

javascript - "' x'的含义不是函数或其返回值不可迭代”错误

javascript - Nodejs Google Drive API 可共享链接