MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để lưu mảng đầu vào vào một lược đồ con trong một lược đồ mongoose lồng nhau?

Bạn có thể sử dụng phương pháp cập nhật nguyên tử như findOneAndUpdate () cho bài đăng của bạn, nơi bạn có thể chỉ định upert quyền mua. If upert là đúng và không có tài liệu nào phù hợp với tiêu chí truy vấn, findOneAndUpdate () chèn một tài liệu duy nhất. Đây là nơi bạn cũng có thể sử dụng $ gốc đẩy toán tử để đẩy câu hỏi và câu trả lời mới vào mảng câu hỏi, thay vì sử dụng vòng lặp khi bạn có thể cho phép mongo thực hiện tất cả công việc trên máy chủ.

Ví dụ sau cho thấy cách bạn có thể cấu trúc lại mã của mình:

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;

Ở trên, các trường và giá trị của cả tham số được tạo nếu tham số chứa các biểu thức toán tử cập nhật. Bản cập nhật tạo một tài liệu cơ sở từ các mệnh đề bình đẳng trong và sau đó áp dụng các biểu thức cập nhật từ tham số.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chèn Mảng bên trong một đối tượng trong MongoDB

  2. Trình điều khiển Mongodb C # - không thể sử dụng xác thực quản trị viên để truy cập cơ sở dữ liệu khác

  3. Có thể thay đổi TimeZone mặc định trong MongoDB bằng Rails 3 không?

  4. Tìm kiếm tài liệu lồng nhau trong MongoDB

  5. Danh sách kiểm tra bảo mật cho việc triển khai sản xuất MongoDB