【问题标题】:How do I connect to the same MongoDB database with node.js and the console?如何使用 node.js 和控制台连接到同一个 MongoDB 数据库?
【发布时间】:2015-07-02 03:09:55
【问题描述】:

我使用 mongoose 连接到本地机器上的 Mongodb 数据库。我正在使用mongoose.connect('mongodb://localhost/myTestDB');。然后在控制台中,我使用mongo 进入 Mongodb shell。但是,我无法使用 show dbs 命令在 mongodb shell 中找到 myTestDB 数据库。是什么赋予了?如何在 shell 中查看 nodejs 连接的同一个数据库?

【问题讨论】:

  • 您使用 mongod 启动了您的 mongo 数据库,然后您使用了 mongo shell mongo。当您输入show dbs时,您至少看到local 数据库吗?
  • 我看到 jwt 0.078GB 和 test 0.078GB。然后我输入 use jwt 和 db.jwt.find() 但 node.js 和 mongoose 创建的文档都没有显示。我可以通过 node.js 访问文档。此外,我可以在 shell 中创建记录,我可以在 shell 中检索这些记录。就像我连接到两个不同的数据库,但我不知道每个数据库在哪里,也不知道如何以不同的方式连接到它们。
  • 你真的对你用猫鼬连接的数据库做过什么吗?在您实际在集合中创建文档之前,集合或数据都不存在。
  • 我在清理时不小心删除了 admin 和 local 数据库。这是造成问题的原因吗?我重新启动了计算机,这些数据库再次存在。不过还是不行。
  • 您在上面说过您尝试了db.jwt.find(),但它不是这样工作的。执行show collections,这将在jwt 数据库中显示集合名称,然后执行db.collection.find()

标签: node.js mongodb shell


【解决方案1】:

您的数据库应该在集合中至少有一个文档,只有这样它才会在 mongo shell 中列出。

【讨论】:

    【解决方案2】:

    从 cmets 和您的描述看来,您似乎不是通过 mongod 启动 MongoDB。您首先需要建立与数据库文件的连接(应该有 journal、"databaseName" .0 和 .ns、mongod.lock 和storage.bson 文件)。除非您在控制台中明确这样做,否则单独设置您的 dbpath 不会连接到它。

    如果您不想在本地存储数据库文件,可以使用mongolab。

    按照this 手册(运行 MongoDB 部分),它应该可以工作。

    【讨论】:

    • 欢迎来到 Stack Overflow!虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。见How do I write a good answer。
    猜你喜欢
    • 1970-01-01
    • 2020-01-12
    • 2019-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-18
    • 2020-04-12
    • 2021-04-13
    相关资源
    最近更新 更多