Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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 多键查询中的Mongo Db$不是$_Mongodb - Fatal编程技术网

Mongodb 多键查询中的Mongo Db$不是$

Mongodb 多键查询中的Mongo Db$不是$,mongodb,Mongodb,我有一个Mongo db文档集合,其中包含_id,id1,id2,其中(id1,id2)是唯一的。 我想找到除(id1,id2)字典列表以外的所有文档 换言之,我想要所有的文件,除了 文件示例: { _id: 1, id1: 25, id2: 1030 }, { _id: 2, id1: 25, id2: 1031 }, { _id: 3, id1: 1024, id2: 2048 }, { _id: 4, id1: 1552, id2: 1284 } 要删除的数组的示例: except_ar

我有一个Mongo db文档集合,其中包含_id,id1,id2,其中(id1,id2)是唯一的。 我想找到除(id1,id2)字典列表以外的所有文档

换言之,我想要所有的文件,除了

文件示例:

{ _id: 1, id1: 25, id2: 1030 },
{ _id: 2, id1: 25, id2: 1031 },
{ _id: 3, id1: 1024, id2: 2048 },
{ _id: 4, id1: 1552, id2: 1284 }
要删除的数组的示例:

except_arr = [
    {id1: 1024, id2: 2048},
    {id1: 1552, id: 1284}
]
结果应该是:

{ _id: 1, id1: 25, id2: 1030 },
{ _id: 2, id1: 25, id2: 1031 }

在回顾了我已经评论过的代码之后,看看Mohamad说了什么,我得到了这个解决方案:

db.getCollection('test')。查找({
$or:[
{id1:{$nin:[10241552]},
{id2:{$nin:[20481284]}
]
})
我的数据库对象:

[
{id:1,id1:25,id2:1030},
{u id:2,id1:25,id2:1031},
{{u id:3,id1:1024,id2:2048},
{u id:4,id1:1552,id2:1284},
{u id:5,id1:1024,id2:3},
{u id:6,id1:4,id2:1284}
]
结果是:

[
{id:1,id1:25,id2:1030},
{u id:2,id1:25,id2:1031},
{u id:5,id1:1024,id2:3},
{u id:6,id1:4,id2:1284}
]
编辑
下面是一个具有不同id1和id2的示例
*在线操场测试:
我的收藏:

查询结果。

查看我评论的代码后,看看穆罕默德说我得到了这个解决方案:

db.getCollection('test')。查找({
$or:[
{id1:{$nin:[10241552]},
{id2:{$nin:[20481284]}
]
})
我的数据库对象:

[
{id:1,id1:25,id2:1030},
{u id:2,id1:25,id2:1031},
{{u id:3,id1:1024,id2:2048},
{u id:4,id1:1552,id2:1284},
{u id:5,id1:1024,id2:3},
{u id:6,id1:4,id2:1284}
]
结果是:

[
{id:1,id1:25,id2:1030},
{u id:2,id1:25,id2:1031},
{u id:5,id1:1024,id2:3},
{u id:6,id1:4,id2:1284}
]
编辑
下面是一个具有不同id1和id2的示例
*在线操场测试:
我的收藏:

查询结果。

你要找的东西叫做


你要找的东西叫做


你能用示例文档更新你的问题吗?我更新我的示例。谢谢你的回复!尝试以下脚本:db.getCollection('test')。find({id1:{$nin:[1024,1552]},id2:{$nin:[2048,2048]}})@GlennMateus此解决方案无法工作,因为(id1,id2)在一起是唯一的。我们的想法是找到类似$nin:{“$or”:[{'id1':1024,'id2':2048},{'id1':1552,'id2':1284}}的东西。你能用一个示例文档更新你的问题吗?我更新我的示例。谢谢你的回复!尝试以下脚本:db.getCollection('test')。find({id1:{$nin:[1024,1552]},id2:{$nin:[2048,2048]}})@GlennMateus此解决方案无法工作,因为(id1,id2)在一起是唯一的。我们的想法是找到类似$nin:{“$or”:[{'id1':1024,'id2':2048},{'id1':1552,'id2':1284}}}的内容。感谢Glenn的回复。然而,除了一系列字典之外,要找到结果是行不通的。例如,如果except数组是:except_arr=[{id1:4,id:1284},{id1:25,id2:1030}]db.getCollection('test').find({$or:[{id1:{$nin:[4,25]},{id2:{$nin:[12841030]}),您将得到:[{{{id:3,id1:1024 id2:2048},{id:5,id1:1024,id2:3}]当预期结果应该包含ID为(2,3,5,6)的文档时,感谢Glenn的更新。让我们将Exception_数组更改为:Exception_数组=[{id1:25,id2:1048},{id1:1024,id2:1030}],在这种情况下,您将在结果中获得ID为(2,4,5,6)的文档。但是,在这种情况下,预期的输出应该是所有结果(因为uniquetogether键)。看看下面的链接:谢谢Glenn的回复。然而,除了一系列字典之外,要找到结果是行不通的。例如,如果except数组是:except_arr=[{id1:4,id:1284},{id1:25,id2:1030}]db.getCollection('test').find({$or:[{id1:{$nin:[4,25]},{id2:{$nin:[12841030]}),您将得到:[{{{id:3,id1:1024 id2:2048},{id:5,id1:1024,id2:3}]当预期结果应该包含ID为(2,3,5,6)的文档时,感谢Glenn的更新。让我们将Exception_数组更改为:Exception_数组=[{id1:25,id2:1048},{id1:1024,id2:1030}],在这种情况下,您将在结果中获得ID为(2,4,5,6)的文档。但是,在这种情况下,预期的输出应该是所有结果(因为uniquetogether键)。请查看以下链接:
db.collection.find({
  $nor: [
    {
      id1: 1024,
      id2: 2048
    },
    {
      id1: 1552,
      id2: 1284
    }
  ]
})