2016-05-15 102 views
0

我在MongoDB數據庫中有一個集合。每個文件有(其中包括)看起來像這樣的一個目標領域:通過MongoDB文檔中的對象字段的鍵獲取值或默認值

name: { 
    "en-US": "Foo", 
    "es-ES": "Bar" 
    ... 
} 

en-US關鍵是保證存在的,但任何其他鍵/值都沒有。

有沒有一種方法,我可以查詢文檔以這樣的方式,其結果將包含領域name和字段的值是,要麼我通過語言(讓它成爲es-ES),或者如果該鍵沒有按」 t是否存在,值爲en-US

回答

0

我解決我的問題有:

db.products.aggregate([ 
    { 
     $project: { 
      short_id: 1, 
      name: { 
       $cond: { 
        if: { 
         $eq: ["$name.es-ES", undefined] 
        }, 
        then: '$name.en-EN', 
        else: '$name.es-ES' 
       } 
      } 
     } 
    } 
])