【发布时间】:2022-11-28 10:12:54
【问题描述】:
我想在我的 fruitsDB 数据库中创建一个集合并使用 Mongoose 添加一个文档:
const mongoose = require("mongoose");
mongoose.connect("mongodb://localhost:27000/fruitsDB", { useNewUrlParser: true });
const fruitSchema = new mongoose.Schema ({
name: String,
rating: Number,
review: String
});
const Fruit = mongoose.model("Fruit", fruitSchema);
const fruit = new Fruit({
name: "Apple",
rating: 7,
review: "Pretty solid as a fruit."
})
fruit.save();
我用 sudo mongod --port 27000 --dbpath /var/lib/mongo 命令启动了 MongoDB 社区服务器,然后是 nodemon。
当我使用 show dbs 命令查询 Mongo shell 中现有数据库的列表时,新的 fruitsDB 数据库未列出,我通过 nodemon 收到此错误消息:
MongooseError: Operation `fruits.insertOne()` buffering timed out after 10000ms
at Timeout.<anonymous> (/home/work/Documents/programming/projects/html-css-js/fruits-project/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:153:23)
at listOnTimeout (node:internal/timers:564:17)
at process.processTimers (node:internal/timers:507:7)
MongoDB 版本:4.4.4
猫鼬版本:6.7.2
Node.js 版本:18.12.0
nodemon版本:2.0.20
操作系统:Linux(Fedora 37 工作站)
我尝试在不同的端口(包括 27017)上运行 Mongo 服务器。 然后在这里和 MongoDB 论坛上查看了其他相关问题,但这些都没有解决我的问题。 我该如何解决这个问题并使用 Node.js 和 Mongoose 将文档添加到 fruitsDB?
【问题讨论】:
-
A Mongoose model doesn't have an insertOne method. Use the create method instead: -
@HemantSoni 我应该在代码中更改什么?我看不到任何 insertOne 方法。 (对不起,我是猫鼬的初学者)
-
答案已经存在@Thomas
const fruit = new Fruit({ name: "Apple", rating: 7, review: "Pretty solid as a fruit." }) fruit.save();
标签: javascript node.js mongodb mongoose localhost