MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да запазя масив от входове към дъщерна схема във вложена мангустова схема?

Можете да използвате атомен метод за актуализиране като findOneAndUpdate() за вашата публикация, където можете да посочите upsert опция. Ако upsert е вярно и нито един документ не отговаря на критериите на заявката, findOneAndUpdate() вмъква един документ. Тук можете също да използвате родния$ натиснете оператор, за да изпратите новия въпрос и отговорите към масива с въпроси, вместо да използвате цикъл, когато можете да оставите mongo да върши цялата работа на сървъра.

Следният пример показва как можете да преработите своя код:

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;

В горното, полетата и стойностите както на и <актуализация> параметрите се създават, ако параметърът съдържа изрази на оператор за актуализиране. Актуализацията създава основен документ от клаузите за равенство в параметър и след това прилага изразите за актуализиране от параметър.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как мога да активирам libmongoc ssl в PHP 7 за Mongodb връзка?

  2. Как мога да сортирам по $elemMatch в MongoDB?

  3. Каква би била мотивацията за интегриране на mongodb със solr

  4. Интеграция на Quarkus mongodb

  5. Eval MongoDB Query с NodeJS