投影mongoDB不起作用 - 运营商$ in



我有一个数组:

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

此数组是我在MongoDB中查询的条件。nodejs中的查询是:

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

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

请帮助我

用非常简单的词:

差异:1

{ $in: ["v1","v2","v3"] }工作或条件和{ $all: ["v1","v2","v3"] } 工作和条件。

在v1,v2和v3与"属性"值匹配的$中,如果有任何值,则您将在结果中获取文档。

$ abt $ ash如果V1,V2和V3的所有值必须以"属性"值存在,则只有您才能获得结果文档。

差异:2

$全部应仅在数组属性上使用,就好像您将在数组中使用两个或多个值的字符串属性上使用$,然后始终将获得空的结果。

$ in对于两种类型的属性" array"one_answers" string"可能很有用,如字符串属性,如果有任何值与数组的值匹配的值,则您将在结果中获得相应的文档。

<</p> <</p>

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

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

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

最新更新