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

Pipa pencarian:`$match` bidang lokal `$in` array ketika dari nilai adalah array dan nilai lokal dapat ditemukan

Bisa tolong coba ini :

db.collection_a.aggregate(
[{ $match: { _id: ObjectId(' ') } },
// other $lookups...
{
    $lookup: {
        as: 'collection_b',
        from: 'collection_b',
        let: { id: { $toString: '$_id' } },
        pipeline: [
            {
                $addFields: {
                    "related": {
                        "$cond": {
                            "if": {
                                "$ne": [{ "$type": "$related" }, "array"]
                            },
                            "then": [],
                            "else": "$related"
                        }
                    }
                }
            },
            {
                $match: {
                    $expr: { $in: ['$$id', '$related'] }
                }
            }
            // sorts, projections, etc...
        ]
    }
}
           // sorts, projections, etc...
]);

Seperti yang tertulis $in mengambil larik sebagai parameter kedua dan nilai yang Anda cari sebagai parameter pertama.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Agregat Mongodb:konversikan tanggal ke zona waktu lain

  2. Bagaimana saya bisa mengaktifkan libmongoc ssl di PHP 7 untuk koneksi Mongodb?

  3. Bagaimana cara menerapkan Identitas ASP.NET Core 3.1 dengan MongoDB?

  4. Dapatkan indeks elemen yang diberikan dalam bidang array di MongoDB

  5. Buat indeks secara dinamis dengan mongoid