具有多个记录条件的MongoDB查询

胜利者

这可能是微不足道的,但是我还没有找到一种方法来做到这一点。

说我在数据库中有以下记录:

{ A: 1, B: 2, C: "Red" }
{ A: 1, B: 2, C: "Blue"}
{ A: 1, B: 3, C: "Red" }

而且我想返回带有的所有记录{A: 1, C: "Red"},但是C: "Blue"如果有多个具有相同B值的记录,则不返回因此,对于以上记录,它将仅返回第三条记录。因为有两个记录具有相同的B值,并且其中一个具有值,所以不会返回第一条记录C: "Blue"

我只能想到通过对数据库的两次查询来做到这一点,即首先查询{A:1,C:“ Red”},然后通过查询数据库中的所有元素进行检查。我想第二步实际上可能不仅仅是1个查询。

我真的不想查询{A: 1}当然,我是通过API来完成所有这些工作的,因此,这将是一个数据库查询,但是结果列表可能比我想要的要大得多。

是否有一个查询可以仅通过1个数据库调用就能完成我想做的事情?谢谢。

罗曼·佩卡(Roman Pekar)

我认为只有一个查询是不可能的。但是,您可以通过聚合获得所需的所有B ,然后查询该B的数据库:

db.test1.aggregate(
    [
        {$group: {_id: "$B", count: {$sum:1}}},
        {$match: {count:1}}
    ]
)

将返回您所有B,而在您的收藏夹中只有一个记录。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章