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