首页 > 解决方案 > 尝试使用 mongoDB、nodejs 和 mongoose 将数据保存到集合中

问题描述

我似乎不知道如何使用 mongoDB、mongoose 和 nodejs 将文档保存到集合中。我正在尝试将从 API 返回的一些数据保存到我在 mongodb atlas 中创建的集合中,但我终生无法弄清楚如何做到这一点。

我试过用猫鼬制作一个模式,并尝试通过它保存并尝试直接连接到数据库,但我所做的似乎没有任何效果。

这是我的架构

const mongoose = require('mongoose');

const twitterStateDataSchema = mongoose.Schema({
  stateName: Number
});

module.exports = mongoose.model('TwitterStateData', twitterStateDataSchema);

这是我对 Schema 的调用:

TwitterStateData.insertOne(statesMap).then(test => {
  console.log(test);
})

这是我与数据库的连接:

mongoose.connect(process.env.MONGO_DB)
.then(() => {
  console.log('Connected to Sport Stakehouse database!')
})
.catch(() => {
  console.log('Connection Failed!')
})

这是我的 env.json 中的内容减去秘密内容:

.mongodb.net/gameData?retryWrites=true&w=majority

我正在尝试发送这个对象:

{ IA: 4, undefined: 7, MI: 1, FL: 1, WV: 1, TX: 1, MN: 1, MO: 1 }

我收到错误 insertOne() is not a function 但我认为这不是我的问题。

标签: node.jsmongodbmongoose

解决方案


根据Mongoose 文档,您可以使用.createor .save.save()是来自Model实例的方法,直接.create()从Model中调用为方法调用,根据需要使用。

使用创建:

const data = { IA: 4, undefined: 7, MI: 1, FL: 1, WV: 1, TX: 1, MN: 1, MO: 1 };
TwitterStateData.create(data, function (err, small) {
    if (err) return handleError(err);
    // saved!
});

使用保存:

const object = new TwitterStateData(yourData);
object.save(function (err) {
  if (err) return handleError(err);
  // saved!
});

注意:您需要打开连接才能使功能正常工作。


推荐阅读