MongoDB查询数组以获得精确的元素匹配,但可能不正常

Car*_*lan 4 mongodb mongoid

我在MongoDB中有一个文档如下所示:

{ users: ["2", "3", "4"] }
Run Code Online (Sandbox Code Playgroud)

我试图通过匹配users数组来查询此文档.

db.things.find( { users: { $all: [ "2", "3", "4" ] } } )
Run Code Online (Sandbox Code Playgroud)

该查询有效,但也会返回此文档:

{ users: ["2", "3", "4", "5"] }
Run Code Online (Sandbox Code Playgroud)

最后一个要求是能够与元素出为了查询用户数组,表示[ "3", "4", "2" ]查询,并能够回到我的第一份文件中列出.

任何帮助将不胜感激.提前致谢.

我也使用mongoid,如果它有一个任何人都知道的帮助,但如果我需要可以做一个直接的mongo查询.

Chr*_*ain 10

您可以将查询与{users:{$ size:3}}子句合并,并调整大小以匹配您要查询的用户数.这将确保您获得精确的集合,而不是子集.

如果元素出现故障,您可能需要为每个元素执行{users:{$ exists:"1"}},并将这些和$ size子句组合在一起.