繁体   English   中英

使用 mongoose 将数据插入 MongoDb

[英]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具有以下语法

  1. 第一个参数是condition/filter
  2. 第二个参数是要更新的doc
  3. 三是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM