簡體   English   中英

MongoDB和Mongoose:如何添加對象(如果尚不存在)

[英]MongoDB and mongoose: how to add an object if it doesn't already exist

我在使用mongoDB / mongoose和node.js時遇到了一些麻煩。 我已經習慣了SQL,而mongoDB很難...! 這是我的架構:

var mongoose = require('mongoose');

mongoose.Promise = global.Promise;

var itemSchema= mongoose.Schema({

    item_info        : {
        user_id      : Number,
        location     : String,
        item_id      : Number,
        title        : String
    },
    item_hist        : {
        user_id      : Number,
        location     : String,
        item_id      : Number,
        founddate    : String
       }
});
module.exports = mongoose.model('item', itemSchema);

我可以通過執行以下操作添加一個新項目:

    var item= require('./app/models/item');
    var item= new item();
    item.item_info.user_id      =  12345;
    item.item_info.location     = 'This address';
    item.item_info.item_id      = 4444;
    item.item_info.title        = 'New item';
    item.save(function(err) 
    {
        if (err)    throw err;
    });

想做的是說:“尋找一個具有item_info.item_id 5555的項目。如果存在,則什么也不做。如果不存在,則將其添加到數據庫中。” 我已經閱讀了很多mongodb和mongoose文檔,但是在使用點表示法和通過nodejs而不是命令行mongodb訪問之間,我仍然不知道該怎么做。 SQL似乎容易得多!

只需使用-

    var query = { user_id: 12345, location: "This address", item_id: 4444, title: "New item"  },

        options = { upsert: true };

   Model.findOneAndUpdate(query.item_id, query, options, function(error, result) {
    if (error) return;

    // do something with the document
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM