sql >> Database >  >> NoSQL >> MongoDB

TypeError:db.collection is geen functie

Dus ik stemde voor het antwoord dat zei om gewoon naar mongodb 2.2.33 te gaan omdat ik het probeerde en het werkte, maar toen voelde ik me raar om gewoon te downgraden om een ​​probleem op te lossen, dus vond ik de oplossing waarmee je versie>=kunt behouden 3.0. Als iemand dit probleem vindt en zijn probleem niet in een blanco referentie zoals het geaccepteerde antwoord werd doorgegeven, probeer dan deze oplossing.

Als je rent..

MongoClient.connect(db.url,(err,database) =>{ }

In mongodb-versie>=3.0, That database variabele is eigenlijk het bovenliggende object van het object dat u probeert te benaderen met database.collection('whatever') . Om toegang te krijgen tot het juiste object, moet je naar je databasenaam verwijzen, voor mij was dat door te doen

MongoClient.connect(db.url,(err,database) =>{ 
  const myAwesomeDB = database.db('myDatabaseNameAsAString')
  myAwesomeDB.collection('theCollectionIwantToAccess')
}

Dit loste mijn fouten op bij het uitvoeren van mijn node.js-server, hopelijk helpt dit iemand die niet alleen zijn versie wil downgraden.

(ook, als je je db-naam om de een of andere reden niet weet, doe dan gewoon een console.log(database) en je zult het zien als een objectattribuut)

BEWERKEN (juni 2018):

Volgens dit retourneert de callback eigenlijk de verbonden client van de database, in plaats van de database zelf.

Om de database-instantie te krijgen, moeten we daarom deze methode gebruiken, die een dbName inneemt . In de documentatie stond If not provided, use database name from connection string. , zoals vermeld door @divillysausages in de reacties hieronder.

Kortom, we zouden database.db().collection('theCollectionIwantToAccess'); moeten aanroepen als de dbName wordt geleverd door url, waarbij de database is eigenlijk client voor een beter begrip



  1. Krijgt u een verbindingsfout bij het gebruik van redis-trib.rb om een ​​cluster te maken?

  2. Meerdere array-elementen bijwerken in mongodb

  3. Verlaag de score in Redis of verwijder indien 0

  4. Verwijzen naar een ander schema in Mongoose