Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongoDB~合并$exists/$nin?_Mongodb - Fatal编程技术网

mongoDB~合并$exists/$nin?

mongoDB~合并$exists/$nin?,mongodb,Mongodb,我的mongo收藏foo有一系列文档,其中一些文档带有一个名为music的数组,其中一些文档包含一个值“Blues” 如果我想显示数组存在的所有记录,并且它们不包含单词Blues,为什么这不起作用(它似乎忽略了第一个条件) 但这确实: db.foo.find({ music: { $exists: true, $nin: ["Blues"] } }) 尚未尝试,但您需要向查询中添加$和。否则它将只应用最后一条语句 db.foo.find

我的mongo收藏
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”