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

Bagaimana cara menyimpan array input ke skema anak dalam skema luwak bersarang?

Anda dapat menggunakan metode pembaruan atom seperti findOneAndUpdate() untuk posting Anda di mana Anda dapat menentukan upsert pilihan. Jika upsert benar dan tidak ada dokumen yang cocok dengan kriteria kueri, findOneAndUpdate() menyisipkan satu dokumen. Di situlah Anda juga dapat menggunakan$push operator untuk mendorong pertanyaan dan jawaban baru ke larik pertanyaan, daripada menggunakan loop ketika Anda dapat membiarkan mongo melakukan semua pekerjaan di server.

Contoh berikut menunjukkan bagaimana Anda dapat memfaktorkan ulang kode Anda:

var express = require('express');
var router = express.Router();
var Survey = require('../models/QBank');

router.post('/', function(req, res, next){ 
    Survey.findOneAndUpdate(
        { "surveyname": req.body.sname }, /* <query> */
        { /* <update> */
            "$push": {
                "question": {
                    "que": req.body.que,
                    "ans1": req.body.ans1,
                    "ans2": req.body.ans2,
                    "ans3": req.body.ans3,
                    "ans4": req.body.ans4
                }
            } 
        },
        { "upsert": true }, /* <options> */
        function(err, doc){ /* <callback> */
            if(err) res.json(err);
            else
                req.flash('success_msg', 'Question saved to QBank');  
            res.redirect("/CreateSurvey");
        }
    );
});

module.exports = router;

Di atas, bidang dan nilai dari kedua <query> dan <update> parameter dibuat jika <update> parameter berisi pembaruan ekspresi operator. Pembaruan membuat dokumen dasar dari klausa kesetaraan di <query> parameter, dan kemudian menerapkan ekspresi pembaruan dari <update> parameter.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Setiap lemparan lari kedua:MongoError:Topologi dihancurkan

  2. Memulai garpu mongod, ERROR:proses anak gagal, keluar dengan kesalahan nomor 1

  3. sintaks untuk menghubungkan dokumen di mongodb

  4. Bagaimana urutan indeks gabungan penting dalam kinerja MongoDB?

  5. MongoDB $elemMatch $dalam