当我使用 .find() 时,是什么导致 mongodb shell 不显示所有记录?

what is causing mongodb shell to not show all records when I use .find()?

我在 osx 上 运行ning mongodb 版本 3.6.2,并且一直在试验 mongodb 操作,例如通过以下方式插入、查询、删除node.js(使用 node.js 的官方 mongodb 驱动程序)。

我也在 运行为 mongodb(Robo3T - 版本 1.2.1)创建一个前端客户端应用程序,因为我了解了更多关于 mongo、它是如何工作的以及存储数据。

我能够执行插入(一条和多条记录)、基于查询过滤器删除、列出所有记录等操作。但是当我转到 shell 和尝试 运行 以下命令:

db.getCollection('videos').find({})

没有返回记录,也没有错误。有趣的是,在 Robo3T 中,当我双击该集合时,会显示相同的控制台命令(并且会显示所有记录,如预期的那样)。

并且从 node.js 开始,当我 运行 以下命令时,我确实得到了列出的所有记录:

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("collection_archivedvideo");
    dbo.collection("videos").find({}).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    console.log(result.length)
    db.close();
  });
});

当我尝试列出所有记录时,我在 mongodb shell 中做错了什么?我认为这无关紧要,但该集合有大约 1,500 条记录,并且是从本地 JSON dataset/file 批量导入/大量导入的。

我唯一能想到的是,您在使用 shell 时没有连接到数据库。

您是否明确告诉 shell 使用您的数据库?

查看您当前使用的数据库运行:

db

获取所有数据库的列表:

show dbs 

最后切换数据库:

use <dbname>

希望对您有所帮助!