MongoDB 集合带连字符的名称

我正在使用 Node.js 程序将数据插入 MongoDB 数据库。

var mongoClient = require("mongodb").MongoClient;
mongoClient.connect("mongodb://localhost:30002/test", function(err, db) {
if (err) throw err;
db.collection("repl-failOver").insert( { "documentNumber" : document++}, function (err, doc) {
if (err) throw err;
console.log(doc);
});
db.close();
});

当我使用 Mongo shell 并使用 show collections列出数据库中的集合时,我能够看到集合“ repl-falOver”。

如何从 mongo shell 运行这个集合的 find 命令?

37044 次浏览

使用以下语法:

db['repl-failOver'].find({})

或者

db.getCollection('repl-failOver').find({})

你可以在手册的 执行查询部分找到更多的信息:

如果 mongoshell 不接受集合的名称,则为 如果名称包含空格、连字符或以 Number,则可以使用其他语法引用集合,如 下列各项:

db["3test"].find()


db.getCollection("3test").find()

访问具有特定字符(-_)的集合时会出现此错误。我解释了 给你的变通方法,但是基本上你所需要做的就是

db.getCollection("repl-failOver").insert(...)