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

Mongoose - Menambah nilai di dalam array objek

Tidak mungkin menaikkan nilai secara langsung di .find kueri apakah labelOptions adalah Array Objek. Untuk mempermudah, Anda harus mengubah labelOptions ketik dari Array Objek ke Objek:

"labelOptions": {
    "Bob": 112,
    "Billy": 32,
    "Joe": 45
};

Pertimbangkan juga untuk menggunakan .findByIdAndUpdate alih-alih .findOneAndUpdate jika Anda menanyakan dengan _id dokumen . Dan kemudian, Anda dapat mencapai apa yang Anda inginkan dengan:

Poll.findByIdAndUpdate(
    id,
    {$inc: {`labelOptions.${labelOption}`: 1 }},
    function(err, document) {
    console.log(err);
});

PEMBARUAN:Jika Anda gigih menggunakan Array Objek untuk labelOptions , ada solusinya:

Poll.findById(
    id,
    function (err, _poll) {

        /** Temporarily store labelOptions in a new variable because we cannot directly modify the document */
        let _updatedLabelOptions = _poll.labelOptions;

        /** We need to iterate over the labelOptions array to check where Bob is */
        _updatedLabelOptions.forEach(function (_label) {

            /** Iterate over key,value of the current object */
           for (let _name in _label) {

               /** Make sure that the object really has a property _name */
               if (_label.hasOwnProperty(_name)) {

                   /** If name matches the person we want to increment, update it's value */
                   if (_name === labelOption) ++_label._name;
               }
           }
        });

        /** Update the documents labelOptions property with the temporary one we've created */
        _poll.update({labelOptions: _updatedLabelOptions}, function (err) {

            console.log(err);
        });
    });


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. subset kueri mongodb dari sebuah array

  2. Instalasi Mongodb gagal dengan homebrew dan Xcode 8.1.1

  3. MongoDB $atau Operator Pipa Agregasi

  4. Unggah dan Ambil File Menggunakan MongoDB dan Spring Boot

  5. Membuat koleksi kosong di mongodb