我是Mongo聚合管道的新手,我尝试做的是找到一种从查询中排除文档的简单方法。此集合中的每个文档都可以有多个usernames
。我在我的聚合中尝试排除的是任何用户名不是userA
和userB
的文档。我想做的是:
...
{$dontmatch: {usernames: {$nin: ['userA', 'userB']}}}
我当前的查询:
...
{$match:{
$or: [
{$and: [{usernames: {$size: 1}}, {usernames: {$in: ["userA", "userB"]}}]},
{$and: [{usernames: {$size: 2}}, {usernames: {$all: ["userA", "userB"]}}]}
]}
}
我目前所拥有的是什么,但我只是想知道是否有更干净或更有效的方法,例如我上面建议的?