【问题标题】:mongoDB: check if value exists in specific subdocument array [duplicate]mongoDB:检查特定子文档数组中是否存在值[重复]
【发布时间】:2017-07-14 21:07:11
【问题描述】:

我有以下架构:

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

如何检查 objectID('593f8c591ba95154cfebe790') 是否存在于数组 business.likes where business._id = objectID('59579ff91aa9514f600cbba6') 中?

在上面的例子中它应该返回 false。

【问题讨论】:

    标签: mongodb database


    【解决方案1】:

    您可以使用$elemMatch在同一个子文档中按多个字段查找

    db.collectionName.find({
      businesses: {
        $elemMatch: {
          _id: ObjectId("5967bd5f1aa9515fd9cdc87f"),
          likes: ObjectId("593f8c591ba95154cfebe790")
        }
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 2023-01-03
      • 2020-07-31
      • 1970-01-01
      • 2016-10-22
      • 2021-06-15
      • 2011-12-14
      相关资源
      最近更新 更多