如何在查询中编写mongo $ all $

时间:2018-01-02 10:01:49

标签: mongodb mongodb-query

请帮助mongodb查询。我需要检查另一个数组中的所有数组项。 我需要以下内容 -

db.getCollection('Transactions').find({
    BusinessUnitids: { 
        $all: { $in: [item1, item2, item3] } 
    } 
});

1 个答案:

答案 0 :(得分:0)

如果您正在寻找唯一值(例如,忽略任何一个数组都可以包含重复值,如[1,1,2,3]),那么您可以使用$setEquals

例如:

> db.test.find()
{ "_id": 0, "a": [ 1, 2, 3 ] }

> db.test.aggregate([{$project: {set_equal: {$setEquals: ['$a', [1, 2, 3]]}}}])
{ "_id": 0, "set_equal": true }

> db.test.aggregate([{$project: {set_equal: {$setEquals: ['$a', [1, 2, 3, 4]]}}}])
{ "_id": 0, "set_equal": false }

如果您需要其他设置操作,请参阅Set Operators

请注意,set操作是Aggregation Framework的一部分,而不是常规find()命令的一部分。