Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何更新mongodb_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 如何更新mongodb

Node.js 如何更新mongodb,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有收藏,结构如下, 如何使用以下内容更新标记字段: ——id:556C1C836E800821F41D9F \u versions.id:556C1C836E800821F41DA6 \版本。\数据。\ id:556c71735ddb5010067f1beb [{ "_id": ObjectId("556c1c836e80082821f41d9f"); "_name": "Product 1" "_curr_version": ObjectId("556c1c83

我有收藏,结构如下, 如何使用以下内容更新
标记
字段

——id:556C1C836E800821F41D9F

\u versions.id:556C1C836E800821F41DA6

\版本。\数据。\ id:556c71735ddb5010067f1beb

[{
     "_id": ObjectId("556c1c836e80082821f41d9f");
     "_name": "Product 1"
     "_curr_version": ObjectId("556c1c836e80082821f41da6")
     "_versions": [{
         "_id": ObjectId("556c71735ddb5010067f1be6"),
         "_data": [{
                 "_id": ObjectId("556c1cae82b9a3101787d20f"),
                 "_tags": ['sport', 'football']
             }, {
                 "_id": ObjectId("556c71735ddb5010067f1beb"),
                 "tags": ['golf']
             }

         ]
     },

     {
         "_id": ObjectId("556c1c836e80082821f41da6"),
         "_data": [{
                 "_id": ObjectId("556c1cae82b9a3101787d20f"),
                 "_tags": ['sport', 'swimming']
             }, {
                 "_id": ObjectId("556c71735ddb5010067f1beb"),
                 "tags": ['tenis']
             }

         ]
     }

     ]

 }]

我在nodejs上工作,并使用mongosee驱动程序访问mongodb。我已经找到了解决办法

  • 在我获得
    \u版本之前。\u数据。\u id:556c71735ddb5010067f1beb
    将存储定位为
    pos
    变量
  • 在此之后,我:

    var ObjectId = require('mongoskin').ObjectID;
    var setObject = {};
    setObject["_versions.$._data."+ pos +"._tag"] = ['a','b'];
    db.use("MongoDB").collection('collections').update({
            "_id": new ObjectId('556c1c836e80082821f41d9f'),
            "_versions._id": new ObjectId('556c1c836e80082821f41da6')
        },
        {
            $set : setObject
        },
        {},
        cb);
    

对于这种使用编程语言代码的多级更新,mongoDB仍然不提供这种查询检查可能重复我在nodejs上的工作,并使用mongosee驱动程序访问mongoDB。