我正在学习Mongoose和MongoDB,并尝试从本地托管的MongoDB读取数据,我键入了Mongoose文档中的类似示例。但它不起作用。我在名为personal_website
的数据库中创建了一个名为blogs
的简单MongoDB集合,用于测试目的。该集合中只有一个文档
personal_website> db.blogs.find()
[ { _id: ObjectId("63bbcb27ae437ded486fecf4"), title: 'test' } ]
这是我的密码,但不起作用
user@user-machine: ~$ cat server.js
const mongoose = require("mongoose");
mongoose.set("strictQuery", true);
mongoose.connect("mongodb://localhost/personal_website", () => {
console.log("connected to databse personal_website");
});
let blogSchema = new mongoose.Schema({
title: String,
});
let Blog = mongoose.model("blog", blogSchema);
let blogCount = Blog.find({}).count();
console.log(blogCount);
我运行node server.js
,但得到以下输出:
Query {
_mongooseOptions: {},
_transforms: [],
_hooks: Kareem { _pres: Map(0) {}, _posts: Map(0) {} },
_executionStack: null,
.........
connected to databse personal_website
我希望得到类似的结果,因为我运行db.blogs.find().count()
命令在MongoDB shell 。我该怎么解决这个问题?我应该查询数据库后,连接建立?我看到很多教程连接到他们的MongoDB在一开始就像我一样,也有文档说 “Mongoose让你立即开始使用你的模型,而不需要等待Mongoose建立到MongoDB” 的连接。那么你们能帮我找出这个问题的原因以及如何修复它吗?我真的很感激,我在那里呆了四个小时。
1条答案
按热度按时间vybvopom1#
1.在连接字符串中使用端口号和
127.0.0.1
:"mongodb://127.0.0.1:27017/personal_website"
而不是"mongodb://localhost/personal_website"
(27017是默认端口)1.尝试用异步函数 Package 查询并使用await: