如何在$ array中形成mongoose查询

鉴于这个集合:

[{ "users": [{ "name": "one" }, { "name": "two" }] }, { "users": [{ "name": "one" }, { "name": "three" }] }, { "users": [{ "name": "fifteen" }, { "name": "one" }] }] 

我怎样才能使用值(即"one""two" ),以便findOne方法返回只有同时具有 "name":"one" "name":"two" (订单不相关) ? users数组总是有2个元素,不多也不less。

我正在尝试一些事情:

 Collection.findOne({"users":{$all:["one", "two"]}}) 

但它不工作。 谁能帮忙?

编辑:最新的尝试:

 Collection.findOne({"users":{"name": {$all:["one","two"]}}}) 

       

网上收集的解决方案 "如何在$ array中形成mongoose查询"

试试这个:

 {"users": {$all: [{"name": "one"}, {"name": "two"}]}} 

或者使用JohnnyHK提出的点符号。

在这里看到如何使用$ all: https : //docs.mongodb.org/manual/reference/operator/query/all/

编辑:数据已更改。

您可以通过使用点符号来标识$all操作符应用到的数组中的特定字段:

 Collection.findOne({'users.name': {$all: ['one', 'two']}})