【问题标题】:How to update on mongodb如何在 mongodb 上更新
【发布时间】:2015-06-02 12:01:20
【问题描述】:

我有收藏,结构如下, 如何更新 tags 字段

_id: 556c1c836e80082821f41d9f

_versions.id: 556c1c836e80082821f41da6

_versions._data._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']
             }

         ]
     }

     ]

 }]

【问题讨论】:

标签: node.js mongodb mongoose


【解决方案1】:

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

  • 在我得到_versions._data._id: 556c71735ddb5010067f1beb 位置之前存储为pos var
  • 之后我有:

    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);
    

【讨论】:

    猜你喜欢
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 2018-07-04
    • 2014-05-04
    • 2015-05-14
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多