0
MongoDB出力を使用してフィルタリングしたいコレクションがあります。 私の問題はそれぞれのリクエストに対して、私は約束を保留しています。これはフィルタリングに使用できません。移動する前にすべての保留中の約束を解決するには?mongodbクエリに基づくフィルタコレクション
私の現在のアプローチは、(アプローチはhereを記載)の値としてキーとMongoDBの出力として入力してコレクションを生成するlodashを使用した共通鍵により、これら2つのコレクションをマージする(アプローチがhereを記載)、次いでときに新しいフィールドエントリをフィルタリングすることですコメントは空です。現在、Mongodbのリクエスト中に約束が保留されているため、動作しません。
ありがとうございました。
注:接続、スキーマやモデルがすでに正常に動作している
import _ from 'lodash'
import Mongoose from 'mongoose';
Mongoose.Promise = global.Promise;
var input = [{'id':'1', 'text':'a'},{'id':'2', 'text':'b'},...]
var ids = _.map(input,'id')
var filtering = _.zipObject(ids, _.map(ids, function(id) {
var query = Model.find({ id: id }).select({ comment: 1 });
query.exec();
return query
}));
// output is currently [{'id':'1','comment':Promise { <pending> },},{'id':'2','comment':Promise { <pending> },},...]
// output should be [{'id':'1','comment':'blabla',},{'id':'2','comment':'',},...]
var output= _({}).merge(_(input).groupBy("id").value(),_(filtering).groupBy("id").value())
.values()
.flatten()
.value();
output = _.filter(output, 'comment')