Я использую MongoDB 1.8.1.Я хочу эмулировать запрос $elemMatch
Монго внутри предложения $where
, используя стандартный метод some
для массивов JavaScript.Однако запрос никогда ничего не соответствует, даже если я предоставляю фиктивную функцию.
> db.foo.insert({bar: [1, 2, 3]})
> db.foo.count({$where: 'this.bar && (this.bar.length > 0)'})
1
> db.foo.count({$where: 'this.bar && this.bar.some'})
1
> db.foo.count({$where: 'this.bar && this.bar.some(function() {return true;})'})
0
В самой оболочке MongoDB он работает:
> [1, 2, 3].some(function() {return true;})
true
Почему это так?