#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
});