Коллекция дебютного имени MongoDB
Я использую программу Node.js для вставки данных в базу данных MongoDB. Я вставил данные в коллекцию с именем "repl-failOver".
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 и перечисляю коллекции в базе данных с помощью show collections
, я могу видеть коллекцию "repl-failOver".
Как запустить команду find из оболочки mongo для этой коллекции?
Ответы
Ответ 1
Используйте этот синтаксис:
db['repl-failOver'].find({})
или
db.getCollection('repl-failOver').find({})
Дополнительную информацию можно найти в разделе Выполнение запросов:
Если оболочка mongo не принимает имя коллекции, для если имя содержит пробел, дефис или начинается с number, вы можете использовать альтернативный синтаксис для ссылки на коллекцию, так как в следующем:
db["3test"].find()
db.getCollection("3test").find()
Ответ 2
Вы получаете эту ошибку от доступа к коллекциям с определенными символами (-
, _
,
). Я объяснил обходное решение здесь, но в основном все, что вам нужно, это сделать
db.getCollection("repl-failOver").insert(...)