如何在$ 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"]}}})
试试这个:
{"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']}})