使用 mongodb compass 在我的数据库中添加了一些 json 数据,并尝试使用 mongoose 获取数据,但得到的是空数组
Posted
技术标签:
【中文标题】使用 mongodb compass 在我的数据库中添加了一些 json 数据,并尝试使用 mongoose 获取数据,但得到的是空数组【英文标题】:Added some json data in my database with mongodb comapss and tried to get the data with mongoose but got empty array instead 【发布时间】:2021-10-07 06:38:13 【问题描述】:我下载了一些 json 格式的餐馆数据,并使用 mongodb 罗盘将其添加到 localhost。但是当我尝试使用 mongoose 从 express 后端获取数据时,我得到了一个空数组。
数据库名称是 sampleRestaurants,集合名称是餐馆。该数据库托管在端口 27017 上。
使用此代码连接到 mongodb 数据库:
const dbURI = "mongodb://127.0.0.1:27017/sampleRestaurants";
mongoose
.connect(dbURI, useNewUrlParser: true, useUnifiedTopology: true )
.then((result) =>
app.listen(5000, () => console.log("server is listening on port 5000"));
)
.catch((err) => console.log(err));
然后创建架构:(我什至需要架构来获取所有数据!)
const restaurantSchema = new Schema(
name: String,
neighborhood: String,
photograph: String,
address: String,
latlng: Object,
cuisine_type: String,
operating_hours: Object,
reviews: Array,
);
const Restaurant = mongoose.model("Restaurant", restaurantSchema);
试图获取所有餐馆数据:
app.get("/all-restaurants", (req, res) =>
Restaurant.find()
.then((result) => res.send(result))
.catch((err) => console.log(err));
);
结果是:[ ]
如何获取餐厅的所有数据?
【问题讨论】:
该代码看起来适合在“sampleRestaurants”数据库的“restaurants”集合中查找所有文档。 还是不行! 那么可能是数据插入方式的问题? 可能是这样吧,我不知道怎么用mongo shell,但是通过compass访问数据没有问题。 使用 mongo shell 连接并运行show dbs
,然后运行use sampleRestaurants
和show collections
。将结果编辑到问题中。
【参考方案1】:
终于成功了,多亏了 joe,也许是指南针出了问题,使用 mongo shell 解决了错误。
【讨论】:
以上是关于使用 mongodb compass 在我的数据库中添加了一些 json 数据,并尝试使用 mongoose 获取数据,但得到的是空数组的主要内容,如果未能解决你的问题,请参考以下文章
无法连接到我的 MongoDB 数据库,在 Mongodb Compass 上收到此错误“Server Selection Timed Out After 3000ms”
Windows MongoDB - 已安装的Compass但在系统中找不到Compass
在 Ubuntu 上通过 Compass 加载 MongoDB Atlas 时出错
无法使用 SSH 隧道将 MongoDB Compass 连接到 AWS DocumentDB