相关疑难解决方法(0)

实现类似goMongoDB的Query表达式对象评估

我一直在寻找类似MongoDb(http://docs.mongodb.org/manual/applications/read/#find,docs.mongodb.org/manual/reference/operators/)查询表达式对象评估函数的实现或者一类.它可能不包括所有高级功能,并且应该具有可扩展的体系结构.

类似MongoDB的查询表达式对象易于理解和使用,提供编写干净,自解释代码的能力,因为要搜索的查询和对象都是关联数组.

基本上说它是一个方便的功能,从PHP数组中提取信息.知道了数组结构(arrayPath),它将允许对多维数组数据执行操作,而不需要多个嵌套循环.

如果您不熟悉MongoDb,请查看给定的表达式对象和数组以进行搜索.

为简单起见,我把它写成JSON字符串.对象内容毫无意义,只需显示MongoDb查询语法即可.

类似MongoDb的查询表达式对象

{
    "name": "Mongo",
    "type": "db",
    "arch": {
        "$in": [
            "x86",
            "x64"
        ]
    },
    "version": {
        "$gte": 22
    },
    "released": {
        "$or": {
            "$lt": 2013,
            "$gt": 2012
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

要搜索的数组

[
    {
        "name": "Mongo",
        "type": "db",
        "release": {
            "arch": "x86",
            "version": 22,
            "year": 2012
        }
    },
    {
        "name": "Mongo",
        "type": "db",
        "release": {
            "arch": "x64",
            "version": 21,
            "year": 2012
        }
    },
    {
        "name": "Mongo",
        "type": …
Run Code Online (Sandbox Code Playgroud)

php if-statement multidimensional-array query-expressions mongodb

13
推荐指数
2
解决办法
1537
查看次数

有没有办法使用MongoDB查询对象来过滤常规JavaScript数组?

在MongoDB中,您可以使用JSON样式的对象(如下所示)来查询集合:

db.things.find({ x : { $ne : 3 }, y : 'foo' });
Run Code Online (Sandbox Code Playgroud)

我想重用那个{ x : { $ne : 3 }, y : 'foo' }位并用它来过滤JavaScript对象的数组.

是否有任何代码/库可以做到这一点,并且支持所有查询选项(或者无论如何都有意义)?

javascript mongodb

9
推荐指数
1
解决办法
2431
查看次数

在PHP中评估类似MongoDB的JSON查询

考虑在此JSON对象中表达的以下(相当复杂的)查询:

{
    "name": "Kindle Fire",
    "sale": true,
    "price": {
        "$gt": 199,
        "$lt": 264
    },
    "price.vat": { // bogus, just to show $a['price.vat'] == $a['price']['vat']
        "$lte": 1.2
    },
    "$or": {
        "qty": {
            "$gt": 30
        },
        "eta": {
            "$or": {
                "$lt": 3,
                "$gt": 30
            }
        }
    },
    "countriesAvailable": {
        "$in": [
            "US",
            "CA"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

目的


我想解析那个JSON,以便它计算到PHP的等价物($a我的目标数据在哪里):

$a['name'] == 'Kindle Fire' &&
$a['sale'] == true &&
(
    $a['price'] > 199 && $a['price'] < 264
) &&
$a['price']['vat'] <= 1.2 …
Run Code Online (Sandbox Code Playgroud)

php arrays evaluation iterator multidimensional-array

9
推荐指数
1
解决办法
823
查看次数