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

Bagaimana saya bisa mengembalikan elemen yang saya cari di dalam array bersarang?

Gunakan metode shell findAndModify sesuai dengan kebutuhan Anda.

Tetapi Anda tidak dapat menggunakan karakter posisi $ lebih dari sekali saat memproyeksikan di MongoDb, jadi Anda mungkin harus melacaknya sendiri di sisi klien.

Gunakan arrayFilters untuk memperbarui sub-dokumen yang sangat bersarang, alih-alih memposisikan semua operator $[] .

Di bawah ini adalah kueri yang berfungsi -

var query = {
    universe: 'comics'
};

var update = {
    $set: {
        'saga.$[outer].characters.$[inner].character': 'lobezno',
        'saga.$[outer].characters.$[inner].picture': '618035022354.png',
    }
};

var fields = {
    'saga.characters': 1
};

var updateFilter = {
    arrayFilters: [
        {
            'outer.name': 'x-men'
        },
        {
            'inner.character': 'wolverine'
        }
    ]
};

db.collection.findAndModify({
    query,
    update,
    fields,
    arrayFilters: updateFilter.arrayFilters
    new: true
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pengembalian data asimetris MongoDB, item pertama dalam array dikembalikan secara penuh, sisanya dengan properti tertentu dihilangkan?

  2. Keadaan pemulihan sekunder tanpa akhir

  3. MongoDB $indexOfBytes

  4. Bagaimana menulis query Mongo untuk menemukan sub dokumen dengan kondisi

  5. MongoDB pada otentikasi mLab gagal