相关疑难解决方法(0)

MongoDb查询条件比较2个字段

我有一个集合T,有2个字段:Grade1而且Grade2,我想选择那些有条件的Grade1 > Grade2,我怎样才能得到像MySQL一样的查询?

Select * from T Where Grade1 > Grade2
Run Code Online (Sandbox Code Playgroud)

compare mongodb

93
推荐指数
4
解决办法
8万
查看次数

在mongodb内部匹配字段

我在mongodb有以下文件

    {
        "_id" : ObjectId("517b88decd483543a8bdd95b"),
        "studentId" : 23,
        "students" : [
          {
           "id" : 23,
           "class" : "a"
           },
          {
           "id" : 55,
           "class" : "b"
           }
        ]
     }
     {
        "_id" : ObjectId("517b9d05254e385a07fc4e71"),
        "studentId" : 55,
        "students" : [
           {
            "id" : 33,
            "class" : "c"
          }
         ]
     }
Run Code Online (Sandbox Code Playgroud)

Note: 不是实际数据,但架构完全相同.

Requirement:使用单个查询查找与studentIdand students.id(在student数组中的id)匹配的文档.

我尝试过如下代码

db.data.aggregate({$match:{"students.id":"$studentId"}},{$group:{_id:"$student"}});
Run Code Online (Sandbox Code Playgroud)

Result: 空数组,如果我将{"students.id":"$ studentId"}替换为{"students.id":33}它将返回上面显示的json中的第二个文档.

是否可以使用单个查询获取此方案的文档?

mongodb mongodb-query

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

与$ ne的Mongo聚合

我似乎无法使用布尔运算在Mongo聚合上找到任何资源.我的查询看起来像这样(我使用的是pymongo驱动程序):

db.collection.aggregate([{'$match': {'foo': 3, 'bar': 'baz'}},
                          {'$project': {'quxx': 1, '_id': 0, 'count': 1}},
                          {'$group': {'total': {'$sum': '$count'}, '_id': '$quxx'}},
                          {'$sort': {'total': -1}},
                          {'$limit': 2000}])
Run Code Online (Sandbox Code Playgroud)

哪一切都很好($match在索引等).现在,有一个流氓quxx,我想过滤掉管道,所以我想我会使用$ne运算符.但是,我似乎无法找到正确的方法!我不确定我是不是把它放在正确的位置(我希望它在$match运算符之后但是在$group运算符之前)或者我的语法错误但是帮助将不胜感激.

到目前为止我尝试过的事情(一切都在他们自己的步骤之后$match)是:

{'$quxx': {'$ne': 'rogue'}}
{'quxx': {'$ne': 'rogue'}}
{'$ne': {'quxx': 'rogue'}}
{'$ne': {'$quxx': 'rogue'}}
Run Code Online (Sandbox Code Playgroud)

他们中的每一个都给了我unrecognized pipeline op.

mongodb pymongo

3
推荐指数
1
解决办法
7415
查看次数

标签 统计

mongodb ×3

compare ×1

mongodb-query ×1

pymongo ×1