[英]Insert data into MongoDb using mongoose
我有一个字符串数组,我想通过这个数组 map 并用它的值更新我的集合。
这是我尝试过的:
if (employees) {
employees.map((employee) => {
Employee.updateOne({ $push: { name: employee.name } })
.then((data) => {
console.log(data);
})
.catch((e) => {
console.log(e);
});
});
}
在顶部,我正在导入我的 model:
const Employee = require('../../models/employees');
我的 Model 看起来像这样:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const EmployeeSchema = new Schema({
name: { type: String },
});
const Employee = mongoose.model('employee', EmployeeSchema);
module.exports = Employee;
我的控制台正在记录下一个:
{ n: 0, nModified: 0, ok: 1 }
但是当我检查数据库时,数据不存在并且没有创建集合。
updateOne
具有以下语法。
condition/filter
。doc
。options
。 您需要将upsert
传递给 true 的地方。 注意:如果upsert
设置为true
,那么如果filter
结果为空, updateOne
将创建新doc
。
const insertEmployees = () => {
try {
if (employees) {
employees.map(async employee => {
let filter = { name: employee.name }
let doc = { $push: { name: employee.name } }
let options = { upsert: true }
await Employee.updateOne(filter, doc, options)
});
}
} catch (error) {
console.log(error);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.