MongoDB и Node.js

#node.js #mongodb #typeerror

Вопрос:

поэтому я работаю с node.js и монгодб, и я новичок, Ниже нас мой код:

 const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/myproject';
MongoClient.connect(url,function(err,db){
 if (err){
     return console.dir(err);
 }
 console.log('connected to mdb');
 InsertDoc(db,function(){
  db.close(); 
 })
 });

 const InsertDoc= function(db, callback){

 const collection = db.collection('users');
 collection.insert({
     name : 'vishnu',
     email:'vishnu@123'
 },
 function(err,result){
     if(err){
         return console.dir(err);
     }
     console.log('inserted doc');
     console.log(result);
     callback(result);
 });
 }

 ERROR: TypeError: db.collection is not a function
 

Я не уверен, где я ошибся
, пожалуйста, дайте мне знать об ошибке

Ответ №1:

Обратный вызов от connect вернет вам экземпляр MongoClient и экземпляр Db , как указано в официальной документации по драйверу узла Mongodb, посмотрите на второй пример

https://mongodb.github.io/node-mongodb-native/4.1/classes/MongoClient.html

Как только вы получите коллекцию, вам нужно будет получить db с помощью client.db(dbName) которой вы получите db объект для создания collection .

 // Connect using the MongoClient.connect static method
const MongoClient = require('mongodb').MongoClient;

// Connection url
const url = 'mongodb://localhost:27017/myproject';

// Connect using MongoClient
MongoClient.connect(url, function(err, client) {
  const db = client.db("myproject");

  const collection = db.collection("users");
  // do your thing

  client.close();
});
`