2017-03-26 10 views
0

私は少し問題があります:私はそれをクリーニングした直後に未加工レコードのリストを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がネイティブドライバだと思っていましたが、

答えて

0

このラインmodel.collection.remove((removeError, removeResult)は間違っています。

削除するための構文はdb.collection.remove( <query>, <justOne> )

あなたはすべてを削除する意味クエリ({})を持っているそこには、クエリはありませんが、ここではmodel.remove({}, (err, docs) => {、これです。

このステートメントdb.mycol.remove({'title':'MongoDB Overview'})を調べます。これは、MongoDB Overviewというタイトルのドキュメントを検索して削除するクエリです。

これは意味がありますか?

+0

私は 'remove'メソッドがコレクション自体ではなくコレクションからレコードを削除することを理解しています。 –

+0

更新された回答を確認してください。 – Remario

+0

私は両方のバリアントを試しましたが、結果は同じです –

関連する問題