mongoDB~合并$exists/$nin?
我的mongo收藏mongoDB~合并$exists/$nin?,mongodb,Mongodb,我的mongo收藏foo有一系列文档,其中一些文档带有一个名为music的数组,其中一些文档包含一个值“Blues” 如果我想显示数组存在的所有记录,并且它们不包含单词Blues,为什么这不起作用(它似乎忽略了第一个条件) 但这确实: db.foo.find({ music: { $exists: true, $nin: ["Blues"] } }) 尚未尝试,但您需要向查询中添加$和。否则它将只应用最后一条语句 db.foo.find
foo
有一系列文档,其中一些文档带有一个名为music
的数组,其中一些文档包含一个值“Blues
”
如果我想显示数组存在的所有记录,并且它们不包含单词Blues
,为什么这不起作用(它似乎忽略了第一个条件)
但这确实:
db.foo.find({
music: {
$exists: true,
$nin: ["Blues"]
}
})
尚未尝试,但您需要向查询中添加$和。否则它将只应用最后一条语句
db.foo.find ($and:[{music : {$exists : true}}, {music : {$nin : ["Blues"]}}}])
尚未尝试,但您需要向查询中添加$和。否则它将只应用最后一条语句
db.foo.find ($and:[{music : {$exists : true}}, {music : {$nin : ["Blues"]}}}])
因为编程语言中的结构规则。语法:
db.foo.find({
music: { $exists: true },
music: { $nin: ["Blues"] }
})
考虑这一点的最佳方式(尽管这取决于驱动程序和语言)是:
由于编程语言中的结构规则,后者覆盖了早期的。语法:
db.foo.find({
music: { $exists: true },
music: { $nin: ["Blues"] }
})
考虑这一点的最佳方式(尽管这取决于驱动程序和语言)是:
后者覆盖较早的,因为
> var obj = {music: 1, music: 2};
> obj
Object {music: 2}
它也类似于
> var obj = {};
> obj.music = 1;
> obj.music = 2;
然后期望obj.music
在某种程度上既是1
又是2
,因为
> var obj = {music: 1, music: 2};
> obj
Object {music: 2}
它也类似于
> var obj = {};
> obj.music = 1;
> obj.music = 2;
然后期待
obj.music
不知何故既是1
又是2
好主意,但它应该是db.foo.find({$and:[{music:{$exists:true}},{music:{$nin:[“Blues”]}})
)是的,我没有试过代码,只是想指出问题是他缺少一个“$and”好主意,但是它应该是db.foo.find({$and:[{$music:{$exists:true}},{music:{$nin:[“Blues”]}}}})
:)是的,我没有尝试过代码,只是想指出问题是他缺少了一个“$and”