2016-05-15 11 views
0

私はMongoDBデータベースにコレクションを持っています。各文書には、(特に)このように見える一つのオブジェクトフィールドました:MongoDBドキュメントのオブジェクトフィールドのキーで値を取得するか、デフォルト値

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

en-USキーが存在することが保証されているが、他のキー/値ではありません。

結果にフィールドnameが含まれ、そのフィールドの値が、渡された言語(es-ES)になるか、またはそのキーに '存在しない場合、値は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' 
       } 
      } 
     } 
    } 
]) 
関連する問題