Node.js 无法使用Mongoose从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

我很难弄明白为什么我的代码不允许我获取托管在MongoDB Atlas集群中的文档。我举了一个小例子,它和我遇到的问题是一样的

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"
}