我有獨特的文件索引非唯一鍵。什麼使得這個文件是唯一的,是文件中多個鍵的組合。例如:僅當多個匹配時才比較其他字段?
{
first: 'John',
last: 'Foo'
}
{
first: 'Henry',
last: 'Bar'
}
{
first: 'Frank',
last: 'Foo'
}
{
first: 'John',
last: 'Bar'
}
因此,根據上面的例子:如果我們想要查詢的Frank
頭名,我們只會得到一個結果。理想情況下,由於我們只有一個結果,我們甚至不需要將姓氏與我們的查詢進行比較。但是,如果我們查詢名稱爲John
,我們會得到兩個結果,所以我們將需要比較次要參數。
在Mongo中如何實現這種查詢風格?目標只是爲了節省不必要的比較,如果只有一場比賽開始。
請注意,我知道這種查詢風格不保證正確的文檔。它假定主要字段和每個後續字段匹配「足夠好」來驗證文檔的身份,如果只有一個文檔匹配,則爲。雖然如果還有其他不太明顯的原因,爲什麼不應該使用這種方法,通過一切手段討論:)
添加'limit(1)'和'sort()'參數的任何原因都不起作用? –
如果找到多個匹配項,'limit(1)'不會匹配第二個/ etc參數,所以您將無法通過不正確的匹配進行篩選。至於'sort()',我不這麼認爲..雖然也許有一些用法,我不熟悉 –
所以你試圖阻止MongoDB檢查'last ='Foo ''弗蘭克'案中,純粹是出於性能原因? – JohnnyHK