繁体   English   中英

所有元素均符合条件的MongoDB查询数组

[英]MongoDB query array where all elements match criteria

我收藏了3个文件:

{"users":[{"id":1,"gender":"male"},{"id:1,"gender":"male"},{"id":1,"gender":"male"}]}
{"users":[{"id":1,"gender":"male"},{"id:1","gender":"male"},{"id":1,"gender":"female"}]}
{"users":[{"id":1,"gender":"female"},{"id":1,"gender":"female"},{"id":1,"gender":"female"}]}

我想编写一个查询,其中每个性别都是男性(users.gender:“男性”),结果只能得到:

{"users":[{"id":1,"gender":"male"},{"id:1,"gender":"male"},{"id":1,"gender":"male"}]}

到目前为止,我能够获得至少一个字段符合条件的那些文档。 所以我得到:

{"users":[{"id":1,"gender":"male"},{"id:1","gender":"male"},{"id":1,"gender":"female"}]}
{"users":[{"id":1,"gender":"female"},{"id":1,"gender":"female"},{"id":1,"gender":"female"}]}

有什么办法吗?

假设你有你的文件只有两个类型性别: malefemale ,所有不包含文件female的性别类型,会自动将这些与每一个性别类型为male 因此,可以使用$nin [ doc ]

当然,这是从您的示例中大量假设和推论得出的,这一点根本不清楚。 请格式化您的问题,使其正确而简洁,以便其他人可以从中受益。 谢谢。

这实际上是说出Abhishek Pathak已经说过的话的另一种方式:

您可以从可能的结果集中排除female 假设您的集合称为example ,则可以使用以下查询:

db.examples.find({"users.gender" : {$nin: ["female"]}})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM