search

Home  >  Q&A  >  body text

mongodb subset方式的查询

例如以下一个collention:

  1. { test: [1,2,3] }
  2. { test: [1,3] }
  3. { test: [2] }
  4. { test: [3,4] }
    如何实现查找test数组是另一个数组 [1,2,3]子集的结果?
    类似于$all查询,但与$all相反。
    db.coll.find({ test: {$subset: [1,2,3] }})得到的结果应该是除了4以外的其它几个。
黄舟黄舟2888 days ago717

reply all(1)I'll reply

  • 阿神

    阿神2017-04-22 09:01:11


    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]}}}})

    reply
    0
  • Cancelreply