我有下列文件中MongoDB的MongoDB的確切子文檔查詢
{ "_id" : ObjectId("5215c622f8b2bae39d82b54c"), "params" : { "groupBy" : "days", "country" : "A", "city" : "b" } }
{ "_id" : ObjectId("5215c62df8b2bae39d82b54d"), "params" : { "groupBy" : "days", "country" : "A" } }
{ "_id" : ObjectId("5215c643f8b2bae39d82b54e"), "params" : { "groupBy" : "days" } }
,我試圖用這個查詢
{params : {groupBy : 'days', country : 'A', 'city' : 'b'}}
確定找到的第一個文件,沒有問題,它的工作原理。 讓我們試試這個
{params : {groupBy : 'days', city : 'b', country : 'A'}}
和這一個不出奇的工作。 好吧,現在我知道訂單確實重要。
我知道如果我想忽略屬性的順序,我可以這樣做來搜索第一個文檔。
{ 'params.groupBy' : 'days' , 'params.city' : 'b', 'params.country' : 'A' }
現在考慮我想找到第二個文檔,我不知道以前的屬性順序。 所以我會做什麼是
{'params.groupBy' : 'days' , 'params.country' : 'A'}
但此查詢發現無論是第1和第2個文件。
那麼如何才能找到第二個文件只有一個查詢?
編輯: 一個條件是我不知道有多少屬性將在PARAMS子文檔在將來,它可能會保持從時間更改爲時間
嘗試'{PARAMS:{GROUPBY: 「天」,國家 「A」}}' –
但我之前沒有順序。所以我不知道它應該是'{params:{groupBy:「days」,country:「A」}}或'{params:{country:「A」,groupBy:「days」}}' –
order is matter。在這種情況下,您的查詢字符串應該與文檔中的子文檔完全相同。 –