我正在尝试选择一个不包含文档数组中的值的文档。
我有两个问题,我将分别介绍:
(1) 我无法让 $not 运算符处理数组中的值查询:例如,如果我的集合中有以下文档:
{ _id: ObjectId("000000000000000000000000"),
mylist: [ "red", "green", "blue" ] }
我可以使用以下方法选择此文档:
db.myCol.find({mylist:"red"})
但是,我想通过测试是否没有橙色来选择此文档:
db.myCol.find({$not:{mylist:"orange"}})
为什么这不起作用?
(2) 如果数组值是 ObjectId,我无法使数组查询中的值起作用:
{ _id: Object("000000000000000000000000"),
mylist: [ ObjectId("111111111111111111111111") ] }
以下内容不会检索此文档:
myCol.find({mylist:ObjectId("111111111111111111111111")})
有人可以建议我可能做错了什么吗?