Node.js 无法使用Mongoose从MongoDB Atlas接收结果
我很难弄明白为什么我的代码不允许我获取托管在MongoDB Atlas集群中的文档。我举了一个小例子,它和我遇到的问题是一样的Node.js 无法使用Mongoose从MongoDB Atlas接收结果,node.js,mongodb,typescript,mongoose,cloud,Node.js,Mongodb,Typescript,Mongoose,Cloud,我很难弄明白为什么我的代码不允许我获取托管在MongoDB Atlas集群中的文档。我举了一个小例子,它和我遇到的问题是一样的 import * as mongoose from 'mongoose'; import { Schema } from 'mongoose'; class App { init(): void { this.connect(); this.query(); } private connect(): void
import * as mongoose from 'mongoose';
import { Schema } from 'mongoose';
class App {
init(): void {
this.connect();
this.query();
}
private connect(): void {
mongoose.connect('<the string MongoDB Atlas gave me>', { useNewUrlParser: true, useUnifiedTopology: true }, (err: any) => {
if (err) {
console.log(err);
}
});
}
query(): void {
let Drawing = mongoose.model('Drawing',
new Schema({ name: String, tags: [String], data: String }),
'drawings');
Drawing.find({}, (err, res) => {
console.log(res);
});
}
}
let app = new App();
app.init()
在MongoDB Atlas上,我列出了正确的ip,创建了一个集群并设置了对它的访问权限,然后创建了一个名为testdb的数据库,该数据库有一个包含以下文档示例的“绘图”集合:
{ "_id":{
"$oid":"5e6042af1c9d440000f0341b"
},
"name":"Cat",
"tags":[
"animal",
"cute"
],
"data":"hadlkahdwlh28ueu2097094527dhaskdhak"
}
您是否检查了连接字符串中的Db名称是
testdb
?您可能有一些东西,连接字符串格式如下:mongodb+srv//myuser:mypassword@clusterurl.azure.mongodb.net/测试?retryWrites=true&w=majority就是这样!最终url如下:mongodb+srv//myuser:mypassword@clusterurl.azure.mongodb.net/测试数据库
{ "_id":{
"$oid":"5e6042af1c9d440000f0341b"
},
"name":"Cat",
"tags":[
"animal",
"cute"
],
"data":"hadlkahdwlh28ueu2097094527dhaskdhak"
}