sql >> Databasteknik >  >> NoSQL >> MongoDB

$concat två fält i mongodb

Du måste först $unwind employee då kan du använda $concat för att kombinera två fält.

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

Vilket är mycket lättare med mongodb 3.6 och över $lookup syntax.

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



  1. servern returnerade fel vid SASL-autentiseringssteget:Autentiseringen misslyckades

  2. MongoDB-kommandon från DOS eller Windows

  3. Vilken NoSQL DB ska jag använda för glesa tidsserier som data?

  4. Hur hämtar man en arrays sista objekt i ett inbäddat dokument i Mongoose?