sql >> データベース >  >> NoSQL >> MongoDB

$concatmongodbの2つのフィールド

    最初に $unwindを実行する必要があります employee 次に、 $concatを使用できます。 2つのフィールドを組み合わせる。

    db.loggableUser.aggregate([
      { '$lookup': {
        'from': 'employees',
        'localField': 'employee',
        'foreignField' : '_id',
        'as': 'employee'
      }},
      { '$unwind': '$employee' },
      { '$addFields': { 
        'employee.fullName' : { '$concat': ['$employee.name' + ' ' + '$employee.surname'] }
      }}
    ])
    

    これは、mongodb 3.6を使用するとはるかに簡単です。 以上 $lookup 構文。

    db.loggableUser.aggregate([
      { '$lookup': {
        'from': 'employees',
        'let': { 'employee': '$employee' },
        'pipeline': [
          { '$match': { '$expr': { '$eq': ['$_id', '$$employee'] }}},
          { '$addFields': { 'fullName' : { '$concat': ['$name', ' ', '$surname'] }}}
        ]
        'as': 'employee'
      }}
    ])
    



    1. MongoDB環境のセットアップ| WindowsにMongoDBをインストールする

    2. キャッシュドライバーの分散アトミックロックとは何ですか?

    3. SpringDataMongoでのObjectIdの問題を使用したファセット+集計クエリ

    4. MongodbはIDでサブドキュメントをクエリできません(nullを返します)