2012-04-02 4 views
2

、のみ(ない私のフィールドが、マングースはこの典型的な例を持っているので)メタに_idとデータを返すことです:mongoose embedd documents docマングースネストされた文書

ので、私はすべての_idを探していませんよ特に、i>は0またはmeta.fans.length> 0 meta.votes.lengthを持つレコードを探しています現在、私が行います

Model.find({}, ['_id','meta'], function (err, data) { callback(null, data); });

ノー/データ/を持つレコードを取得します。私はこれらのセットを見つけないという選択肢は、それらをフィルタリングする手段になると思いますか?

編集:私は一時的に私の問題を解決してきた:これは(結果を表示と非表示 - インスタンスの古いデータを)機能かもしれませんが

use : { type: Boolean, default: 1 },

、私はこのA /解決策を検討していません/。

答えて

1

井戸meta.votesmeta.fansはどちらもNumberオブジェクトなので、私はあなたがほしいと思うとは思えません。meta.fans.lengthはintのように直接アクセスするだけです。

このクエリでは、投票> 0

Model.find({ "meta.votes" : { $gt : 0 } }, ['_id','meta']).exec(function(err, data) { 
    callback(null, data); 
}); 

のためだけ_idとメタ情報を取得する必要があり、このクエリは> 0

Model.find({ "meta.fans" : { $gt : 0 } }, ['_id','meta']).exec(function(err, data) { 
    callback(null, data); 
}); 

ファンのためだけの_idとメタ情報を取得する必要がありますそして、あなたは可能性が両方のクエリを次のようにまとめます:

Model.find({ $or : [ { "meta.votes" : { $gt : 0 } }, 
        { "meta.fans" : { $gt : 0 } } ] }, ['_id','meta']).exec(function(err, data) { 
    callback(null, data); 
}); 

返品を確認する必要がありますlike:{ _id: 5001b3ce7cf4b534a3000002, meta: { votes: 1, fans: 1 } }

関連する問題