当我使用 .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>
希望对您有所帮助!
我在 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>
希望对您有所帮助!