![](/img/trans.png)
[英]complicated mongoose pull list of data from api and insert into mongodb if it doesn't already exist
[英]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.