2016-05-25 7 views
0

ist Also verwende ich MongoDB 3.2 Version. Ich erstellte eine db und ihre Sammlung über einen Clojure-Wrapper namens monger Aber wenn ich eine Verbindung mit der Mongo-Shell, und überprüfen Sie, ob Sammlungen erstellt werden, kann ich es nicht sehen.MongoDB zeigt keine Collectionsinformationen an, obwohl ich sicher bin, dass es dort

Hier ist der Code:

Primary> use db_name 

PRIMARY> db.version() 
3.2.3 

PRIMARY> db.stats() 
{ 
     "db" : "db_name", 
     "collections" : 4, 
     "objects" : 0, 
     "avgObjSize" : 0, 
     "dataSize" : 0, 
     "storageSize" : 16384, 
     "numExtents" : 0, 
     "indexes" : 9, 
     "indexSize" : 36864, 
     "ok" : 1 
} 

PRIMARY> show collections 

PRIMARY> db.coll1.getIndexes() 
[ ] 

PRIMARY> db.getCollectionInfos() 
Tue May 24 16:29:44 TypeError: db.getCollectionInfos is not a function (shell):1 

PRIMARY> 

Aber wenn ich überprüfen, ob Sammlungen über clojure erstellt werden, kann ich die Informationen sehen.

user=> (monger.db/get-collection-names mongo-db*) 
#{"coll1" "coll2" "coll3" "coll4"} 

Was ist los?

Antwort

0

Das Problem gefunden. Es stellt sich also heraus, dass, wenn die Mongo-Shell und die laufende Mongo-Instanz zwei verschiedene Versionen haben, db.getCollectionNames() und db.collection.getIndexes() keine Ausgabe zurückliefern.

Dies kann passieren, wenn Sie eine Verbindung zu einer Remote-Mongo-Instanz herstellen und die Instanz über die Sie eine Verbindung herstellen, etwa 2.x Shell-Version (Sie können dies sehen, wenn Sie die Shell starten) und der laufende Mongo ist 3. x Version.

Nach the documentation:

Für die WiredTiger Speicher-Engine MongoDB 3.0-Implementierungen verwenden, wenn Sie db.getCollectionNames() und db.collection.getIndexes() von einer Version des mongo Shell ausgeführt vor 3.0 oder eine Version des Treibers vor 3.0 kompatible Version , db.getCollectionNames() und db.collection.getIndexes() werden keine Daten zurückgeben, auch wenn vorhandene Sammlungen und Indizes vorhanden sind. Weitere Informationen finden Sie unter WiredTiger und Treiberversionskompatibilität.

Haben fast eine Stunde damit verbracht, herauszufinden, dass dies für andere hilfreich sein könnte.

Verwandte Themen