我想在MongoDB Atlas中显示我数据库中的用户。我已成功创建连接,但无法显示用户。这是我第一次使用MongoDB Atlas和Express。
在我的系统上,使用MongoDB可以正常工作,但不能使用MongoDB Atlas。
这是我编写的一些用于连接和显示用户的代码。
mongoose.connect("mongodb+srv://wulforr:<my password here>@cluster0-rpwjk.mongodb.net/test?retryWrites=true&w=majority" ,{useNewUrlParser: true, useCreateIndex: true})
.then(()=>{
console.log("connected to db");
})
.catch((err)=>{
console.log("error:",err);
})
let userSchema = new mongoose.Schema({
name: String,
email: String,
credits: Number
})
let User = mongoose.model("user", userSchema);
app.get("/users", function (req, res) {
// finding the information about all users from the database
User.find({}, function (err, response) {
if (err) {
console.log(err);
}
else {
res.render("users.ejs", { result: response });
}
})
})
我在MongoDB Atlas中给了0.0.0.0/0作为IP地址,这样任何人都可以超出它。
我的MongoDB地图集集合的视图:
预期输出:
给出Heroku的输出:
我做错了什么?
答案 0 :(得分:1)
答案 1 :(得分:1)
我遇到了同样的错误,与mongoDB Atlas的连接正常,但是我没有从创建的dabatase中获取任何数据。
问题在于它默认指向指向test的数据库的连接字符串,如@ cluster0-rpwjk.mongodb.net /所示。
mongodb+srv://wulforr:<my password here>@cluster0-rpwjk.mongodb.net/test?retryWrites=true&w=majority
所以我解决了更改连接字符串以指向我的数据库名称的问题
mongodb+srv://wulforr:<my password here>@cluster0-rpwjk.mongodb.net/MY_DATABASE?retryWrites=true&w=majority
答案 2 :(得分:0)
创建一个名称为test的数据库,然后向其中添加用户集合。
这对我有用。