使用mongo风格的语法从数组而不是Mongo集合中查询内存中的JavaScript对象?

asp*_*pin 7 javascript mongodb

在mongo中,我可以构造一个类似下面的查询,从集合中返回高度不等于4的对象.

var mongoQuery = { height: { "$ne": 4 } };
Run Code Online (Sandbox Code Playgroud)

但是说我有一个内存中的对象数组,并希望以相同的方式从它们查询:

var myArr = [{height: 5}, {height: 4}, {height:3}]
Run Code Online (Sandbox Code Playgroud)

是否有任何现有的库或方法可以在数组上使用类似的语法而不是mongo集合?例如:

var result = someUtil(myArr, {height: {"$ne": 4}});  //returns all objects with height != 4
Run Code Online (Sandbox Code Playgroud)

编辑:我不想做!= 4,而是一般由任何蒙戈运营商转换(例如$eq,$ge等)

小智 5

请看一下sift.js。这就是你想要的。但是如果你真的需要 mongodb 之类的查询,请使用它,否则使用另一个库,如lodash或下划线。


Ale*_*exD 0

检查下划线库。

var result = _.find(myArr, function(item){ return item.height == 4 });