Не удается получить доступ к свойствам или функциям MongoDB

#mongodb #express #mongoose

#mongodb #экспресс #mongoose

Вопрос:

Я пытаюсь получить доступ к свойствам или функциям внутри, mongoose.connection чтобы получить методы DeleteMany или DropCollection , но я не могу. Я начинаю express.js сервер внутри соединения mongoose.

 mongoose
.connect(connection, {useNewUrlParser: true, useUnifiedTopology: true})
.then(() => {
    mongoose.connection.db.dropCollection('database');
    console.log('connected');
    app.listen(5000);
})
.catch((error) => {
    console.log(error);
});
  

Что я делаю не так? Я пытался найти решение, и я знаю, что я не могу удалить коллекцию с помощью Mongoose , я могу удалить только данные с помощью MongoDb . Кто-нибудь может помочь мне понять, чего мне не хватает при удалении коллекции при запуске сервера?

Комментарии:

1. является database именем коллекции?

Ответ №1:

Если вы хотите удалить все записи, используя deleteMany in mongoose .

Вам нужно будет указать model коллекцию, к которой будет применена операция

Для удаления коллекции

 MyModel.collection.drop();
  

Удаление всех записей

 const mongoose = require('mongoose'); 
  
// Database connection
mongoose.connect(connectionUrl, { 
    useNewUrlParser: true,
    useUnifiedTopology: true
}); 
  
// MyCollection model 
const MyCollection = mongoose.model('MyCollection', { 
    prop1: { type: String }, 
    prop2: { type: Number } 
}); 
  
// Function call 
MyCollection.deleteMany({}).then(function(){ 
    console.log("all records deleted"); // Success 
}).catch(function(error){ 
    console.log(error); // Failure 
});