【问题标题】:Mongodb Add to array if existsMongoDB 如果存在则添加到数组
【发布时间】:2016-06-05 18:58:51
【问题描述】:
   {
       'ID': 'IDexample',
       'Coordinates'  : [
           {'CoordinateX' :  123,
            'CoordinateY':  5
           },
           {'CoordinateX' :  54,
            'CoordinateY':  23'
           }
        ]
    }

如果坐标集合中存在“IDexample”,我如何向数组坐标添加 2 个元素?如果不存在,则将新文档添加到集合中。 我正在使用 MongoClient,集合的名称是坐标Collection。

 coordinatesCollection.findOne( { "unique_id" : unique_id }, function(err, object){
    if (object) {
      ????
    } else {
      coordinatesCollection.insert({
        "unique_id" : unique_id,
        "coordinates" : [
          {"coordinateX" :msg.coordinatex,
           "coordinateY" : msg.coordinatey
          }
        ]
      })
    }
  });

【问题讨论】:

  • 您有为此编写的任何代码吗?如果您编写了一些代码,提供帮助会更容易。
  • 好的,完成! @gnerkus

标签: node.js mongodb


【解决方案1】:

试试这个:

   coordinatesCollection.findOne( { "unique_id" : unique_id }, function(err, object){
        if (object) {
         coordinatesCollection.findOneAndUpdate({ "unique_id" : unique_id },
       { $push: {"Coordinates": {$each: [ { "CoordinateX": 5, "CoordinateY": 8 }, { "CoordinateX": 6, "CoordinateY": 7 } ]}}},function(err,data){
             if(err){
                console.log("err:"+err);
             }
             else if(data){
                console.log("UPDATED:"+data);
             }

       });
        } else {
          coordinatesCollection.insert({
            "unique_id" : unique_id,
            "coordinates" : [
              {"coordinateX" :msg.coordinatex,
               "coordinateY" : msg.coordinatey
              }
            ]
          })
        }
      });

【讨论】:

    猜你喜欢
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2021-09-27
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    相关资源
    最近更新 更多