MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

$match в $lookup резултат

С MongoDB 3.4 можете да стартирате тръбопровод за агрегиране, който използва $addFields тръбопровод и $filter оператор, за да върне само Компанията масив с елементи, отговарящи на даденото условие. След това можете да обвиете $ филтър израз с $arrayElemAt оператор за връщане на единичен документ, който по същество включва $unwind функционалност чрез изравняване на масива.

Следвайте този пример, за да разберете горната концепция:

db.users.aggregate([
    { "$match": { "UserName": "administrator" } },
    { 
        "$lookup": { 
            "from": 'companies', 
            "localField": 'CompanyID', 
            "foreignField": 'CompanyID', 
            "as": 'Company' 
        } 
    },
    {
        "$addFields": {
            "Company": {
                "$arrayElemAt": [
                    {
                        "$filter": {
                            "input": "$Company",
                            "as": "comp",
                            "cond": {
                                "$eq": [ "$$comp.CompanyName", "edt5" ]
                            }
                        }
                    }, 0
                ]
            }
        }
    }
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Копирайте стойността на първия масив в друго поле в MongoDB

  2. Как да актуализирате всяка стойност с една заявка в mongodb

  3. MongoDb ограничена подколекция

  4. Какво се случва, когато на mongodb липсва памет?

  5. Отстраняване на неизправности в MongoDB Sharded Cluster