mongodb subset方式的查询
例如以下一个collention:
- { test: [1,2,3] }
- { test: [1,3] }
- { test: [2] }
- { test: [3,4] }
如何实现查找test数组是另一个数组 [1,2,3]子集的结果?
类似于$all查询,但与$all相反。
db.coll.find({ test: {$subset: [1,2,3] }})得到的结果应该是除了4以外的其它几个。
回答:
db.test.insert({test:[1,2,3]});db.test.insert({test:[1,2]});
db.test.insert({test:[1]});
db.test.insert({test:[1,2,4]});
db.test.insert({test:[1,2,3,4]});
db.test.insert({test:[4]});
//这一句返回有元素不在集合[1,2,3]里的doc
db.test.find({test:{$elemMatch:{$nin:[1,2,3]}}})
//这一句和上面的相反,返回所有元素都在集合[1,2,3]里的doc
db.test.find({test:{$not:{$elemMatch:{$nin:[1,2,3]}}}})
以上是 mongodb subset方式的查询 的全部内容, 来源链接: utcz.com/p/197038.html