这是我的文件:
{
title:"Happy thanksgiving",
body: "come over for dinner",
blocked:[
{user:333, name:'john'},
{user:994, name:'jessica'},
{user:11, name: 'matt'},
]
}
Run Code Online (Sandbox Code Playgroud)
查找"阻止"中没有用户11的所有文档的查询是什么?
Jus*_*ins 72
您可以使用$ in或$ nin表示"不在"
示例......
> db.people.find({ crowd : { $nin: ["cool"] }});
Run Code Online (Sandbox Code Playgroud)
我在这里添加了更多示例:http://learnmongo.com/posts/being-part-of-the-in-crowd/
Zug*_*alt 31
由于您要与单个值进行比较,因此您的示例实际上不需要NOT IN操作.这是因为Mongo会将其搜索条件应用于数组子文档的每个元素.您可以使用NOT EQUALS运算符$ ne来获取您想要的值,因为它在搜索中无法显示的值:
db.myCollection.find({'blocked.user': {$ne: 11}});
Run Code Online (Sandbox Code Playgroud)
但是,如果你有许多它不能相等的东西,那就是你要使用NOT IN运算符,即$ nin.它需要一组在搜索中无法显示的值:
db.myCollection.find({'blocked.user': {$nin: [11, 12, 13]}});
Run Code Online (Sandbox Code Playgroud)
小智 6
请尝试以下操作:
db.stack.find({"blocked.user":{$nin:[11]}})
Run Code Online (Sandbox Code Playgroud)
这对我有用。
| 归档时间: |
|
| 查看次数: |
42764 次 |
| 最近记录: |