想想MongoDB中的这些文档:
{id:1, people:['james', 'john', 'candy']}
{id:2, people:['james', 'john', 'candy', 'gary']}
无论数组元素的顺序如何,如何找到仅与完整集数组元素匹配的文档。
例如,如果我输入:
input=[ 'candy', 'james', 'john' ]
匹配的响应应该是文档id:1
。
如果我有任何其他文件完全相同的3个人,无论他们在MongoDB people
数组中的顺序如何,它也应该匹配。
我已尝试$all
,但这不起作用。
答案 0 :(得分:2)
您可以使用$size
来限制数组的大小:
db.test.find({
"people": { $all: [ 'james', 'john', 'candy' ], $size: 3 }
})
答案 1 :(得分:0)
作为您问题的解决方案,请尝试在mongodb中执行以下查询。
db.getCollection('collection').find({"people":{$all:[ 'james', 'john', 'candy' ]}})
上述查询将执行数组元素的精确匹配,无论其顺序如何