Как очистить коллекцию в mongodb с помощью мангуста - PullRequest
0 голосов
/ 29 мая 2020

В моем коде я динамически вставляю коллекцию, и это сопоставление имеет значение по умолчанию

_id:ObjectId("5ed0d4d3fec27620043ee59d")
__v:0

Я думаю, что это по умолчанию вставлено в mongodb. На самом деле мне это не нужно, я пытаюсь удалить эти два _id и __: 0, но не работает.

Ниже моего кода:

   var NewModel = require(path.resolve('./models/newmodelschema.model.js'))(collectionName);
   NewModel.create({}, function(err, doc) { 
                NewModel.remove({_id:'',__v:0}, function(err) {
                    if (!err) {
                        console.log(err);
                        return;
                    } else {
                        console.log("Model empty");
                    }
                }); 
            });

1 Ответ

0 голосов
/ 29 мая 2020

Вы можете отключить _id и _v с помощью параметров {_id: false, versionKey: false} при создании схемы.

Пример:

  1. создать схему, как показано ниже
    const NewModel = new mongoose.Schema({
      "name": { type: string}
    }, { _id: false, versionKey: false });
Теперь вставьте данные,
NewModel.create({ "name": "foo"}, function(err, doc){
console.log("data ", doc);
});

Он должен напечатать,

data { "name": "foo" }

без _id и __v

Изменить 2: Вы не можете удалите _id, если это не вложенный документ

PS: Я бы рекомендовал сохранить оба, чтобы узнать об этих полях, прочтите https://docs.mongodb.com/manual/core/document/#the -id-field и https://mongoosejs.com/docs/guide.html#versionKey

...