mongo:更新子文档的数组

时间:2017-07-14 10:10:54

标签: mongodb database

我有以下架构:

{
_id: objectID('593f8c591aa95154cfebe612'),
name: 'test'
businesses: [
  {
     _id: objectID('5967bd5f1aa9515fd9cdc87f'),
     likes: [objectID('595796811aa9514c862033a1'), objectID('593f8c591ba95154cfebe790')]
   }
   {
    _id: objectID('59579ff91aa9514f600cbba6'),
     likes: [objectID('693f8c554aa95154cfebe146'), objectID('193f8c591ba95154cfeber790')]
  }
    ]
}

我需要更新“businesses.likes”,其中business._id等于中心值,而business.likes包含某些objectID。

如果数组中存在objectID,我想删除它。

这是我尝试过并且无法正常工作的原因,因为$ in正在搜索所有子文档,而不是business._id =我的值的唯一子文档:

db.col.update(
    { businesses._id: objectID('5967bd5f1aa9515fd9cdc87f'), 'businesses.likes': {$in: [objectID('193f8c591ba95154cfeber790')]}}, 
    {$pull: {'businesses.$.likes': objectID('193f8c591ba95154cfeber790')}}
)

任何想法如何编写查询?请记住,来自不同企业的business.likes可以拥有相同的objectID。

0 个答案:

没有答案