2011-01-13 7 views
26

Ich habe eine Sammlung in einer unserer MongoDB-Datenbanken mit dem Namen my.collection gefunden.MongoDB Shell - Zugriffssammlung mit Periode im Namen?

Gibt es eine Möglichkeit, von der MongoDB-Shell aus auf diese Sammlung zuzugreifen, obwohl sie einen Punkt im Namen hat?

> db.my.collection.findOne(); 
null 

Ich bin mir ziemlich sicher, dass das nicht stimmt.

+0

Es ist für Karte funktioniert/reduzieren Sammlung, die einen Punkt in ihrem Namen haben, z.B. 'tmp.mr.mapreduce_1294927200_2363' – Nekresh

Antwort

2

Ihr Code ist korrekt. Wenn es null zurückgibt, bedeutet dies, dass die Sammlung leer ist.

+0

Mit einem ähnlichen Problem fand ich Mongo-Shell mit dem Fehler" SyntaxError: unerwartetes Token ILLEGAL "... Ich fand Lauras Antwort unten ist die Möglichkeit, auf eine Sammlung mit einem Punkt im Namen zuzugreifen. – Kickaha

76

versuchen Sie stattdessen:

db["my.collection"].findOne(); 

Sie mit Bindestrichen in das gleiche Problem laufen oder einem anderen Namen, die nicht auf überein [a-zA-Z _ $] [0-9a-zA-Z_ $ ]

Diese Einschränkung stammt von gültigen Namen für JavaScript-Objekteigenschaften.

+5

Ich glaube, dies sollte die akzeptierte Antwort sein, weil es die Syntax erklärt und eine nützliche Problemumgehung gibt. – jschreiner

+0

stimme zu, dies sollte die akzeptierte Antwort sein. – rabashani

10

wenn Kollektionsnamen ist "my.collection"

db.my.collection.findOne(); // OK
null

wenn Kollektionsnamen ist "my.1.collection"

db.my.1.collection.findOne(); // Not OK
SyntaxError: missing ; before statement

Fix:

db["my.1.collection"].findOne(); // Now is OK
null

5

Eine andere Methode narrensicher ist:

db.getCollection("_SCHEMA").find() 

Während im Fall eines Unterstrich im Namen, noch einen Fehler mit @Laura Antwort verursachen:

> db["_SCHEMA"].find() 
2016-07-18T17:44:16.948+0200 E QUERY [thread1] TypeError: db._SCHEMA is undefined : 
@(shell):1:1 
+0

Dies sollte die Antwort sein. Nichts anderes hat für eine Sammlung namens "1" in der Shell funktioniert. – pferrel

Verwandte Themen