問題:如何在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,有時第二雙眼睛可以修復它!謝了哥們! –