3

NodeJS で UnderscoreJS と MongooseJS を組み合わせる際に問題があります。私はマングースの結果を持っていて、配列をフィルタリングしたい

var __ = require("underscore"),
    platformInfo = __.findWhere(user.platforms, {"pId": platformId});

しかし、user.platforms 内の pId は ObjectId であり、見つけることができません。しかし、私がそれぞれを作成し、このように比較すると、すべてOKです:

__.each(user.platforms, function(platform){

                if(platform.pId.toString() == platformId){

                }

});

findWhere メソッド (1 行でクール) で同じ結果を見つけるにはどうすればよいですか? ありがとう

4

4 に答える 4

7

悲しいことに、mongodb ObjectId インスタンスは、JavaScript の等値演算子==または===. 提供されたメソッドを使用する必要があります:objectId1.equals(objectId2)または、両方が文字列に変換されてから下線が引かれるか、===機能することを確認してください。

platformInfo = _.filter(user.platforms, function (platform) {
  return platform.pId.toString() === platformId;
})
于 2013-09-09T15:36:35.393 に答える