【问题标题】:MongooseError: Operation 'fruits.insertOne()' buffering timed out after 10000msMongooseError:操作 \'fruits.insertOne()\' 缓冲在 10000 毫秒后超时
【发布时间】: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


【解决方案1】:

如果您正在学习教程,您可能会遇到弃用问题。截至今天,下面的代码对我有用。

// require mongoose package
const mongoose = require('mongoose');
 
main().catch(err => console.log(err));
 
async function main() {
  // Use connect method to connect to the server
  await mongoose.connect('mongodb://127.0.0.1:27017/FruitsDB');
 
  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.'
  });
 
  await fruit.save();

【讨论】:

    猜你喜欢
    • 2021-08-23
    • 2021-11-15
    • 2021-12-08
    • 2021-04-01
    • 2021-06-30
    • 2021-04-01
    • 2021-04-12
    • 2021-04-11
    • 1970-01-01
    相关资源
    最近更新 更多