node.js - 尝试使用 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 但我认为这不是我的问题。
解决方案
根据Mongoose 文档,您可以使用.create
or .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!
});
注意:您需要打开连接才能使功能正常工作。
推荐阅读
- swift - 我希望我的 tableview 在看到 firestore 数据库发生变化后重新加载
- c# - 将 JSON 解析为 DataTable 时出现 JsonSerializationException
- python - 在 Python 中将 Google 地图连接到 SHP 文件
- dialogflow-es - Account linking in Google Dialogflow
- r - 如何在R中将宽数据转换为长类型?
- java - 在测试类(Junit)中调用静态方法
- php - how to manage returned customer in oauth 2.0 php?
- asp.net - Razor 页面中的多个提交按钮无法找到处理程序 pageName?handler=OnPostUploadImage
- vim - 更改文件的标记/检测到的语言
- reactjs - React Hooks and Fetch: How to update a table based on a user input from an API search