我有點麻煩:我只是試圖在清理完成後將原始記錄列表插入到mongodb集合中。但我沒有收到任何來自insert
方法的反饋。這是我的代碼:清理後無法將數據插入到mongo集合中
model.collection.remove((removeError, removeResult) => {
console.log('remove cb');
model.collection.insert(seeds, (insertError, insertedRecords) => {
console.log('insert cb');
});
});
其實我想用貓鼬API(模型是貓鼬模型),但在我的探索這個問題的辦法做到這一點,我想通了,本地驅動程序不執行此以及。
這就是我一直試圖用貓鼬包裝:
model.remove({}, (err, docs) => {
if (err) {
console.log('remove error');
} else {
console.log('remove success');
model.insertMany(seeds, (insertError, insertedRecords) => {
if (insertError) {
console.log('insert error');
} else {
console.log('insert success');
}
});
}
});
當我運行此腳本我看到「刪除成功」,這一切。如果我註釋掉移除過程則「插入成功」顯示
我的貓鼬模型是非常簡單的:
const schema = new Schema({
name: {type: String, unique: true, index: true},
});
seeds
變量:
export default [
{name: 'USA'},
{name: 'Germany'},
{name: 'France'}, ...
請解釋我在哪裏,我錯了或者我不明白
UPD
我已經試過這個使用MongoClient
,它的工作原理!
MongoClient.connect(url, function(err, db) {
const collection = db.collection('countries');
collection.deleteMany({}, (err, r) => {
console.log('delete', err);
collection.insertMany(seeds, (err, r) => {
console.log('insert', err);
db.close();
Country.find({}, function (err, res) {
console.log(res);
});
});
});
});
所以問題在於貓鼬。雖然其實我以爲{ModelName}.collection
是本機驅動
據我所知'刪除'方法從收集丟棄記錄,而不是收集本身 –
檢查更新的答案。 – Remario
我已經嘗試了兩種變體,結果是一樣的 –