2016-10-12 8 views
1

私は、テストを高速化するために、いくつかのデフォルトのダミーデータをDBに取り込もうとしています。これはhttps://github.com/angular-fullstack/generator-angular-fullstackを使用するプロジェクトの一部で、私は初めて約束を使用しようとしています。コレクションの全アイテムを取得

私のようなもの持っていると仮定:

Thing.create({ 
    name: 'thing 1' 
}, { 
    name: 'thing 2' 
}).then((things) => { 
    console.log(things); 
}); 

をなぜコンソールログ出力だけthing 1ないが、コレクション全体のでしょうか?

mongoose文書http://mongoosejs.com/docs/api.html#model_Model.createによれば、この方法は私を助けてくれない約束を返します。 Promiseはあなたのマングースのインスタンスに応じてこれを設定する必要が戻るにはマングースのためには

+0

コールバックを試しましたか? – Mirodil

+0

プロミスの使用は正しいです、コールバックよりも優先してください。約束を使用するように設定することを忘れないでください。 – Aichholzer

答えて

1

:あなたが一度に複数のドキュメントを作成する場合は、

const mongoose = require('mongoose'); 
mongoose.Promise = global.Promise; 

さらに、あなたはarray.createに渡す必要がありますメソッド:

let things = [ 
    { 
    "name": "Thing 1" 
    }, 
    { 
    "name": "Thing 2" 
    }, 
    { 
    "name": "Thing 3" 
    } 
]; 

Thing.create(things).then(newThings => { 
    console.log(newThings); 
}); 

// Outputs 
[ { name: 'Thing 1', _id: 57fd82973b4a85be9da73b25 }, 
    { name: 'Thing 2', _id: 57fd82973b4a85be9da73b26 }, 
    { name: 'Thing 3', _id: 57fd82973b4a85be9da73b27 } ]