web-dev-qa-db-ja.com

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 Shellを使用し、show collectionsを使用してデータベース内のコレクションをリストダウンすると、コレクション「repl-failOver」が表示されます。

このコレクションに対してmongoシェルからfindコマンドを実行するにはどうすればよいですか?

34
Subramanian

次の構文を使用します。

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

または

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

詳細については、マニュアルの Executing Queries セクションをご覧ください。

Mongoシェルがコレクションの名前を受け入れない場合、たとえば、名前にスペース、ハイフンが含まれている、または数字で始まる場合、次のように代替構文を使用してコレクションを参照できます。

db["3test"].find()

db.getCollection("3test").find()
69
Gergo Erdosi

特定の文字(_-_、___、)を使用してコレクションにアクセスすると、このエラーが発生します。回避策を説明しました here ですが、基本的にあなたがする必要があるのは

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

3
Salvador Dali