MongoDB:$ elemMatch和$ and和在数组内查找对象之间有什么区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB:$ elemMatch和$ and和在数组内查找对象之间有什么区别?相关的知识,希望对你有一定的参考价值。

查询运算符$and的用法之间是否存在逻辑差异?>

db.collection.find({$and: [{"array.field1": "someValue"}, {"array.field2": 3}]})

和投影运算符$elemMatch的用法

db.collection.find({array: {$elemMatch: {field1: "someValue", field2: 3}}})

要查找包含数组内对象字段的文档?

查询运算符$和db.collection.find({$ and:[{“ array.field1”:“ someValue”},{“ array.field2”:3}]的使用之间是否存在逻辑差异? )以及投影运算符的用法...

答案

我将通过一个示例对此进行解释。考虑集合arrays。它有一个名为arr的字段,它是嵌入文档的数组

另一答案

您的第一个查询将找到文档,其中数组具有至少一个field1 = somevalue的元素和至少一个field2 = 3的元素。这两个元素可以不同。第二个将检索文档,其中数组具有至少一个同时匹配两个条件的元素。这是一个数据样本来解释:

另一答案

通过第一个查询,您正在提供某些字段

以上是关于MongoDB:$ elemMatch和$ and和在数组内查找对象之间有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

mongodb 中的Multikey Index Bounds解释$elemMatch

MongoDb $elemMatch 与 $lookup 变量

带有 elemMatch 的 MongoDB 查询,用于从对象内部匹配嵌套数组数据 [重复]

MongoDb:$elemMatch,将字符串转换为数字

使用Java中的$ elemMatch实现Mongodb查询

MongoDB中关于查询条件中包括集合中字段的查询