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

Pencarian teks objek bersarang di mongoDB

Dengan kerangka agregasi itu bisa terlihat seperti ini

db.getCollection('yourCollection').aggregate([
    {
        $unwind: '$arr'
    },
    {
        $match: {
            $or: [
                { 'arr.name': /world/i },
                { 'arr.description': /world/i }
            ]
        }
    },
    {
        $project: {
            _id: '$arr._id',
            name: '$arr.name',
            description: '$arr.description'
        }
    }
])

yang akan menghasilkan output berikut untuk data contoh Anda:

{
    "_id" : 1,
    "name" : "Random",
    "description" : "Hello world"
}
{
    "_id" : 2,
    "name" : "World",
    "description" : "This is a random description"
}  

Jika Anda membutuhkan satu larik dengan dokumen yang dihasilkan seperti yang ditunjukkan dalam pertanyaan Anda, Anda cukup merangkai toArray() panggil di akhir saluran - perlu diingat bahwa ini dapat menyebabkan peningkatan konsumsi memori jika hasil set besar seperti yang ditunjukkan oleh SSDMS di komentar.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Integrasi Power BI dengan Spring Angular

  2. Filter Dokumen menurut Jarak yang Disimpan dalam Dokumen dengan $near

  3. Bagaimana cara menyimpan dokumen dalam agregasi dengan $unwind

  4. Bagaimana menerapkan dokumen tersemat unik di mongoid

  5. MongoDB hapus()