问题:如何在mongo中选择所有(选定)记录?它似乎只返回RoboMongo中的一个结果,尽管我认为我选择了返回两个结果?如何在mongo中选择所有(选定)记录?
在这种情况下,它是一组“X/Y”,所以他们需要与$匹配,我相信,除非我开始将它们合并到一个字段中。在经典SQL查询中,我可能会写类似于
select x,y from map_table where (x = 69 and y = 69) or (x = 68 and y = 69)
我相信这会返回两行。也许我做的事情太复杂了,或者我的模型中有一个错误,这不适用于mongodb。
背景:我正在写一个坐标为“X/Y”的应用程序,在我的DB中包含一个包含这两个变量的对象。我有相同的顺序“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 }
如果第二$和子句以69,69它会显示特定记录,我不知道为什么会发生这种情况,也许我错过了一些关于如何在mongodb中“查找”记录的关键信息。
我觉得真的很傻,现在:-D,有时第二双眼睛可以修复它!谢了哥们! –