![](/img/trans.png)
[英]How to insert data in array field in Mongodb using mongoose and NodeJs
[英]insert document into mongodb array using mongoose, nodejs
我想在mongoDB中插入一条记录。 数据库模型为:
var stockhistory = new Schema({
symbol: String,
values: [{
date: Date,
open: Number,
close: Number,
high: Number,
low: Number,
adjClose:Number,
volume: Number
}]
});
我想将新文档插入values数组。
我尝试了以下操作,但出现错误。
var insertObj = {
'date': obj[0].lt,
'open': obj[0].op,
'close': obj[0].l,
'high': obj[0].hi,
'low': obj[0].lo,
'adjClose': obj[0].l_fix,
'volume': obj[0].vo
};
var sname = 'symbol';
var History = require('../model/stockHistory');
var history = new History({ symbol: sname, values: insertObj });
history.save(function(err) {
if (err) {
return err;
} else {
console.log("Quote saved");
}
});
和
History.findOneAndUpdate(
{symbol: sname},
{$push: {values: insertObj}},
{safe: true, upsert: true},
function(err, model) {
console.log(err);
}
我不确定将文档插入数组,并在Google上搜索但无法通过后尝试以上操作。
感谢帮助 !
编辑
现在已经成功创建了记录,但是新记录被创建为文档,但不在values数组下。请查看屏幕快照(下面给出的链接)
我想在值中创建新记录,以便创建后的计数为2696,而不是创建新的单独文档。 屏幕截图
在您的架构上, values
是一个数组,但是在执行以下操作时:
var history = new History({ symbol: sname, values: insertObj });
您正在将值设置为对象。 您可以尝试:
var insertObj = {
'date': obj[0].lt,
'open': obj[0].op,
'close': obj[0].l,
'high': obj[0].hi,
'low': obj[0].lo,
'adjClose': obj[0].l_fix,
'volume': obj[0].vo
};
var sname = 'symbol';
var History = require('../model/stockHistory');
var history = new History({ symbol: sname, values: insertArr });
History.findOneAndUpdate(
{symbol: sname},
{$push: {values: insertObj}},
{safe: true, upsert: true},
function(err, model) {
console.log(err);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.