mongodb数据库如何对对象进行增加字段操作,如下所示那样,有没有类似数组增加元素的那种操作$addToSet这种操作?

{
      _id:123,
    "name":'james',
    "cfr_delay" :{
        "2018-01-22" : ISODate("2018-01-22T05:59:28.764Z"),
        "2018-01-23" : ISODate("2018-01-22T05:59:28.763Z") 
        }
}

问题:
1.现在如何根据日期条件"2018-01-22"去匹配cfr_delay中是否存在"2018-01-22"记录,若存在对其值进行更新操作
2.如何对cfr_delay进行再次添加一条记录为:"2018-01-24", 使用$addToSet进行添加对象属性时,变成如下形式:

clipboard.png

格式自动插入成数组形式。

阅读 4.4k
1 个回答

这个你只要用addtoset就行了,如果存在就不修改原document,没有就添加,确保唯一性:

db.items.update({_id:"docId"}, {$addToSet:{"cfr_delay.2018_01_22": "你的值"}});

多说一句判断:用$exists

db.collection.find({ "cfr_delay.2018_01_22": { $exists: true, $ne: null } })

// $ne:null 可加可不加 看情况
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题