【问题标题】:MongoDB: querying on a field in an array of embedded documents is not workingMongoDB:查询嵌入文档数组中的字段不起作用
【发布时间】:2019-11-30 07:58:17
【问题描述】:

我在MongoDB中的文档是这样的:

{ 
   "data":{ 
      "groupName":"sample",
      "users": [ 
         { 
            "_id":new ObjectId(),
            "mobNum":"29857903289",
            "isAdmin":"true"
         },
         { 
            "_id":new ObjectId(),
            "mobNum":"87532480923",
            "isAdmin":"false"
         },
      ]
   }
}

usersgroupusers 集合中的嵌入文件数组。当我尝试像这样查询嵌入的子字段时 db.groupusers.find( { "users.$.mobNum": "29857903289" } ),它没有回复我。

问题在于查询嵌入的子字段。我是使用 MongoDB 的新手。不知道如何查询子字段的嵌入数组。不知道该怎么办。任何帮助表示赞赏。

【问题讨论】:

  • mobnummobNum?
  • 我都试过了,都没有反应
  • 好吧,去edit你的问题使用相同的拼写。如果你拼写不同,你不可能指望它会起作用,对吧?

标签: mongodb mongodb-query


【解决方案1】:

这里用这个

db.getCollection('YOUR_COLLECTION_HERE').find({
  "data.users": {
    "$elemMatch": {
      "mobNum": "29857903289"
    }
  }
}})

【讨论】:

  • 我认为最新的 mongo 4.2 版本有些问题。我尝试下载 mongo 的 4.0.4 docker 容器,并且相同的查询返回正确的值。总之,谢谢你的帮助
猜你喜欢
  • 2013-09-06
  • 2021-08-07
  • 2015-08-30
  • 1970-01-01
  • 2015-02-06
  • 1970-01-01
  • 1970-01-01
  • 2018-03-20
相关资源
最近更新 更多