我在NodeJS中组合UnderscoreJS和MongooseJS时遇到问题.我有mongoose的结果,我想过滤一个数组
var __ = require("underscore"),
platformInfo = __.findWhere(user.platforms, {"pId": platformId});
但是user.platforms中的pId是一个ObjectId并且无法找到.
但是,如果我做了一个并且比较像这样可以:
__.each(user.platforms, function(platform){
if(platform.pId.toString() == platformId){
}
});
我如何在findWhere方法中找到(一行,酷)相同的结果?谢谢
解决方法:
遗憾的是,mongodb ObjectId实例无法与JavaScript的相等运算符==或===一起正常工作.您需要使用提供的方法:objectId1.equals(objectId2)或确保它们都转换为字符串,然后下划线或===将起作用.
platformInfo = _.filter(user.platforms, function (platform) {
return platform.pId.toString() === platformId;
})