我如何选择mongo查找中的所有(选定)记录?

奥立佛

问题:如何在mongo查找中选择所有(选定的)记录?即使我认为我选择取回两个结果,似乎在RoboMongo中仅返回一个结果?

在这种情况下,它是一组“ X / Y”,因此它们需要与$匹配,除非我不开始将它们合并到一个字段中,否则我会相信。在经典的SQL查询中,我可能会写类似

select x,y from map_table where (x = 69 and y = 69) or (x = 68 and y = 69)

我相信这将返回两行。也许我使事情变得过于复杂,或者我的模型有一个错误,但这不适用于mongodb。

背景:我正在编写一个坐标为“ X / Y”的应用程序,数据库中的一个经典磁贴由一个内部包含这两个变量的对象组成。我以“ X / Y”的相同顺序获得了复合索引。在开发过程中,我意识到只返回一条记录,并开始将查询放入RoboMongo并进行检查。最终的想法是一次性选择20-100个磁贴。

db.map.find({"$or" : [{ 
                  "$and" : [ 
                {
                    "X" : 69
                }, 
                {
                    "Y" : 69
                }
            ],
                "$and" : [ 
                {
                    "X" : 68
                }, 
                {
                    "Y" : 69
                }]
            }]  

    })

该查询的结果实际上是:

{“ _id”:ObjectId(“ 580aabcd7ad9aa2b404af79f”),“ X”:68,“ Y”:69,“ ID”:4830}

我会期望什么?

{“ _id”:ObjectId(“ 580aabcd7ad9aa2b404af79f”),“ X”:68,“ Y”:69,“ ID”:4830}

{“ _id”:ObjectId(“ 580aabcd7ad9aa2b404af89f”),“ X”:69,“ Y”:69,“ ID”:4830}

如果第二个$ and子句更改为69,69,它将显示该特定记录,我不知道为什么会这样,也许我缺少有关如何在mongodb中“查找”记录的一些关键信息。

s7vr

如果仔细看,括号位置不正确。

不正确-12

db.map.find({
    $or: [{
        $and: [{}, {}],
        $and: [{}, {}]
    }]
})

正确-14

db.map.find({
    $or: [{
        $and: [{}, {}]
    }, {
        $and: [{}, {}]
    }]
})

因此将您的查询更改为

db.map.find({
    "$or": [{
        "$and": [{
            "X": 69
        }, {
            "Y": 69
        }]
    }, {
        "$and": [{
            "X": 68
        }, {
            "Y": 69
        }]
    }]
})

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我的 Sql 查询从选定的月份和年份中获取所有以前的记录

如何从组合框选择的记录中获取所有值?

如何选择所选内容中的所有查找匹配项?

如何查找日期晚于所有记录?

如何在选定的listForm C#中查找所有数字的总和

如何选择子表中没有*特定*记录的所有记录

如何查找两个表中都存在的记录以及左表中的所有记录?

如何选择与记录无关的所有值

为什么我的查找和选择代码会选择Word中的所有文本?

我想在选择或取消选择时更改列表项颜色并将所有选定的值存储在数组中

如何使用重置按钮从bootstrap-multiselect中取消选择所有选定值?

如何使用GUI选择cytoscape中两个选定节点之间的所有边缘

在给定文本中查找所有选定的单词

窗体搜索以查找具有子窗体中值的所有记录(无论字段中的值如何)

如何在C#中更新Mongo DB所有记录

取消选择数据表中的所有选定行

Pymongo 查找值介于两个 mongo 索引值之间的所有 Mongo 记录

如果校园名称包含“'Indiana”字样,我如何从校园表中选择所有记录?

如何在git中查找历史记录中包含提交的所有引用

JIRA:查找上周我所有已记录的工作

如何在Mongo中查找所有字段的数据类型

即使sql中没有数据,如何选择所有记录

如何查找具有特定关联值的所有记录?

如何在SQL中按列分组查找所有列记录是否相同

使用mongo go driver查找集合中的所有文档

Mongo DB根据关键字段查找具有最高价值的所有记录

查找isDirty的所有记录

查找记录的所有组合

如何选择所有带有附件的记录?