繁体   English   中英

投影mongodb不起作用-运算符$ in

[英]Projection mongodb not work - operator $in

我有一个数组:

let arr=["v1","v2","v3"]; 

这个数组是我在mongodb中查询的条件。 nodejs中的查询是:

cursor = await myCollection.find({"attribute":{ $in: arr}},{_id:0,title:1});

结果的投影中没有字段。 但是,当我更改$ in并使用$ all时,查询会带来标题字段。

请帮帮我

根据mongoDB文档,在$ in中,运算符选择字段值等于指定数组中任何值的文档。

根据mongoDB文档,在$ all中,运算符选择文档,其中字段的值是包含所有指定元素的数组。

在您的情况下,如果您使用$ all而不是$ in,则此查询将检查数组中的所有元素。

简单来说:

差异:1

{ $in: ["v1","v2","v3"] }用作OR条件, { $all: ["v1","v2","v3"] }用作AND条件。

使用$ in,如果v1,v2和v3中的任何值与“属性”值匹配,则将得到结果文档。

使用$ all时,如果来自v1,v2和v3的所有值都必须以“属性”值存在,那么只有您将获得结果文档。

差异:2

$ all应该仅在array属性上使用,就好像您将在字符串属性上使用$ all在数组中具有两个或多个值的情况下一样,它将始终获得空结果。

$ in对“数组”和“字符串”这两种类型的属性都很有用,就像String属性一样,如果任何值与array中的值匹配,那么您将得到相应的文档。

暂无
暂无

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

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