不在查询中,然后从第二个集合中选择一个字段

古鲁帕萨德·J·拉奥(Guruprasad J Rao)

我的要求是对所有id不在参考集合中的数据进行计数等效SQL查询将如下所示:

select count(*) from tbl1 where tbl.arr.id not in (select id from tbl2)

我已经尝试过如下,但是陷入了id从第二次查询中获取单个字段的问题。

db.coll1.find(
        {$not:
            {"arr.id":
                 {$in:
                       {db.coll2.find()}//how would I fetch a single column from 
                                       //2nd coll2
                 }
            }
        }
).count()

另外,请注意,这arr.id是一个ObjectId存储在collection中的对象coll1,它将与collection一起使用coll2在获取id类似之言时,应格外小心ObjectId(id)吗?

更新-我正在使用mongo db版本3.0.9

古鲁帕萨德·J·拉奥(Guruprasad J Rao)

我不得不$nin检查not in条件并以与mongodbwas版本不同的格式获取数组3.0.9以下是我的操作方法。

db.coll1.find({"arr.id":{$nin:[db.coll2.find({},["id"])]}}).count()

因为mongodb v>=3.2它将如下

db.coll1.find({"arr.id":{$nin:[db.coll2.find({},"id")]}}).count()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

MongoDB对两个集合进行查询,以在第一个集合中添加/减去一个字段,并与第二个集合中的匹配字段相加

在mysql查询中将第二个字段与第一个字段连接

在第一个字段中查找重复项,然后合并重复行第二个字段中的文本

与第二个字段相关时在一个字段中查找完全匹配

从字符串中捕获第二个字段和最后一个字段

使用一个字段降序然后升至第二个字段对数据进行排序?

找到第二个字段的差异,使用第一个字段报告(awk)

Salesforce规则:如果填充了一个字段,则防止填充第二个字段

当日期显示在一个字段中时,请使其同时显示在第二个字段中

从MySQL中的最后一个条目中选择第二个

我需要创建一个字段,该字段是maxdate的第二个日期

Bash / Regex:当某些第一个字段以引号和逗号开头时替换 CSV 文件中的第二个字段

在第一个查询中获取第二个查询作为字段

尝试对两个字段进行排序,然后是第二个,然后是第一个

如何删除空格,并使用剪切和 unix 工具仅显示第二个字段中的第一个字符?

如何获取放置在第一个字典中的第二个字典的键?

隐藏第二个属性选择字段,直到在Woocommerce中选择“第一个”为止

如何在Java中获取第二个单词的第一个字符

如何在一个字符串的第二个空格中插入“\n”?

Pymongo根据第一个集合中链接的ObjectId查询第二个集合

使用jQuery根据第一个选择列表选项显示第二个字段

在Python中,如何随机选择一个不在第二个列表中的元素?

为什么在引用第二个字段时,该值取自第一个字段?

mysql按第一个字段排序,之后按第二个字段排序

Lucene-按另一个字段排序的搜索,回退到第二个字段

从一个查询中添加一个结果,然后从另一个查询中添加第二个结果

MySQL 触发器适用于同一个表中的一个字段,而不适用于第二个字段

在selectizeInput中选择第二个时禁用一个选项

在CSS中选择第二个tr的第一个td