将sql查询翻译成Mongo语言

时间:2015-02-01 09:57:11

标签: mongodb mongodb-query

我正在尝试在Mongo中执行以下查询:

SELECT * 
FROM events 
WHERE v1 - v2 > 20;

其中v1和v2是SQL DB中列的名称。

如何将其翻译成Mongo Languague?

1 个答案:

答案 0 :(得分:0)

假设您在events

中有这些文件
{
    "_id" : ObjectId("54cdfde528bb923955eff8b4"),
    "v1" : 35,
    "v2" : 10
}

/* 1 */
{
    "_id" : ObjectId("54cdfde928bb923955eff8b5"),
    "v1" : 10,
    "v2" : 20
}

您无法使用简单的find()查询。你应该使用聚合:

db.events.aggregate(
[    
    { $project : { 'diff' : { $subtract : ['$v1', '$v2'] }, v1 : 1, v2 : 1 } },
    { $match : { diff : { $gt : 20} } },
    { $project : { v1 : 1, v2 : 1 } },
]).result

结果是:

{
    "0" : {
        "_id" : ObjectId("54cdfde528bb923955eff8b4"),
        "v1" : 35,
        "v2" : 10
    }
}