MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

$addFields bersarang di MongoDB

Karena Anda menggunakan $unwind Anda dapat melakukannya dengan mudah dengan menambahkan $match sejak ekspresi:"inquiries.routeHistory.status": "ended" akan mengembalikan true jika ada apa saja dokumen di routeHistory memiliki status seperti itu:

db.collection.aggregate([
    {
        $unwind: "$inquiries"
    },
    {
        $match: {
            "inquiries.routeHistory.status": "ended"
        }
    },
    {
        $addFields: {
            "inquiries.routeHistory": {
                $filter: {
                    input: "$inquiries.routeHistory",
                    cond: {
                        $eq: [ { $max: "$inquiries.routeHistory.routeDate" }, "$$this.routeDate" ]
                    }
                }
            }
        }
    },
    {
        $group: {
            _id: "$_id",
            callId: { $first: "$callId" },
            caller: { $first: "$caller" },
            inquiries: { $push: "$inquiries" }
        }
    }
])

Taman Bermain Mongo




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ekspor Koleksi MongoDB ke File CSV

  2. Tidak dapat membuat namespace dalam transaksi multi-dokumen (MongoDB 4.0, Spring Data 2.1.0, Spring Boot)

  3. pymongo- Bagaimana saya bisa memiliki nilai yang berbeda untuk bidang bersama dengan parameter kueri lainnya?

  4. cara mengimplementasikan fungsi seperti gabung kiri mysql di luwak

  5. Mongo:show dbs tidak menunjukkan test db. Mengapa?