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

Как да публикувате MongoDB данни във вложения масив с помощта на NODE.js и Express

Можете да използвате Model.prototype.update в mongoose за актуализиране на поддокумента timings .

Съществуват обаче два сценария -

  1. Ако искате да изпращате записи, без да е необходимо да проверявате дубликати, използвайте $push оператор
    var filter = {
        _id: mongoose.Types.ObjectId('<USER_ID>')
    };
    
    var update = {
        $push: {
            timings: {
                startTime: "",
                endTime: "",
                elapsedTime: ""
            }
        }
    };
    
    db.collection.update(filter, update);
  1. Ако искате да изпращате само отделни записи, използвайте $addToSet оператор
    var filter = {
        _id: mongoose.Types.ObjectId('<USER_ID>')
    };
    
    var update = {
        $addToSet: {
            timings: {
                startTime: "",
                endTime: "",
                elapsedTime: ""
            }
        }
    };
    
    db.collection.update(filter, update);

Забележка:Изискване на mongoose първо

const mongoose = require('mongoose');

Коригирайте кода си към по-долу, също така не можете да получите точния идентификатор на поддокумента, но можете да получите актуализирания основен документ -

const updatedUser = await User.findOneAndUpdate({
        _id: mongoose.Types.ObjectId(req.body._id)
    },
    {
        $addToSet: {
            timings: {
                startTime, 
                endTime, 
                elapsedTime
            }
        }
    }, {
        new: true
    }).exec();



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. JSON.parse() еквивалент в mongo драйвер 3.x за Java

  2. най-добрата практика на mongodb:влагане

  3. Създавайте динамични заявки с Spring Data MongoDB Criteria

  4. Вмъкнете или актуализирайте много документи в MongoDB

  5. Заявката връща грешен резултат с помощта на драйвер mongdb erlang?