MongoDB通配符是查詢的關鍵是否可以在查詢中對密鑰進行通配符?例如,給出以下記錄,我想做一個.find({'a.*': 4}) 這在這里討論https://jira.mongodb.org/browse/SERVER-267,但看起來它沒有得到解決。{
'a': {
'b': [1, 2],
'c': [3, 4]
}}
3 回答

絕地無雙
TA貢獻1946條經驗 獲得超4個贊
如所述,這是不可能的。您鏈接到的服務器問題仍然存在“我們不確定的問題”。
MongoDB有一些關于數組使用的智能,我認為這是圍繞這種功能的復雜性的一部分。
請執行以下查詢db.foo.find({ 'a.b' : 4 } )
。此查詢將與以下文檔匹配。
{ a: { b: 4 } }{ a: [ { b: 4 } ] }
那么“通配符”在這里做什么?db.foo.find( { a.* : 4 } )
它與第一份文件相符嗎?那第二個怎么樣?
而且,這在語義上意味著什么?如您所述,查詢實際上是“查找文檔中任何字段的值為4的文檔”。這有點不尋常。
您是否嘗試實現特定的語義?也許文檔結構的更改將為您提供所需的查詢。

皈依舞
TA貢獻1851條經驗 獲得超3個贊
我有一個用例。myDocInMongo = {'someUnknownKey':{propToCheck:true},'someKnownKey':true}; 現在,我想使用選擇器{someKnownKey:{$ exists:true}}來查找此文檔,但我還想確保其他任何鍵都沒有具有屬性propToCheck的對象。所以,如下所示:{'* .propToCheck':{$ exists:false},{someKnownKey:{$ exists:true}}}
- 3 回答
- 0 關注
- 1756 瀏覽
添加回答
舉報
0/150
提交
取消