标签: aggregation-framework

聚合查询与where条件

任何人都可以帮助我如何将下面的查询转换为mongodb:

Select KeyID, SUM(Qty) from Table where Date <= '1998-12-01' 
Run Code Online (Sandbox Code Playgroud)

(日期格式为YY-MM-DD)

datetime mongodb aggregation-framework

14
推荐指数
1
解决办法
2万
查看次数

如何匹配MongoDB Aggregation Framework中的'undefined'值?

如何具有undefined值的字段中搜索记录过滤:

db.records.aggregate({
    $match: {
        myField: "undefined",
    }
})
Run Code Online (Sandbox Code Playgroud)

mongodb nosql aggregation-framework

14
推荐指数
2
解决办法
2万
查看次数

在mongodb中查找字段的所有非不同值

如何在mongodb中列出集合中字段的所有非不同值?我找到了明确的命令来找到该字段的所有不同值,但我想要相反.

mongodb mongodb-query aggregation-framework

14
推荐指数
1
解决办法
5156
查看次数

有没有办法为mongoose.js聚合提供allowDiskUse选项?

我正在对大约300k +记录的集合运行聚合,这需要几个展开和重新组合.我遇到了以下错误;

'exception: Exceeded memory limit for $group, but didn\'t allow external sort. Pass allowDiskUse:true to opt in.'
Run Code Online (Sandbox Code Playgroud)

我似乎无法通过使用mongoose.js API来解决如何传递此选项的问题?

mongoose mongodb node.js aggregation-framework

14
推荐指数
2
解决办法
7991
查看次数

如何在MongoDB集合中查找给定标准的文档和单个子文档

我收集了产品.每个产品都包含一系列项目.

> db.products.find().pretty()
{
    "_id" : ObjectId("54023e8bcef998273f36041d"),
    "shop" : "shop1",
    "name" : "product1",
    "items" : [
            {
                    "date" : "01.02.2100",
                    "purchasePrice" : 1,
                    "sellingPrice" : 10,
                    "count" : 15
            },
            {
                    "date" : "31.08.2014",
                    "purchasePrice" : 10,
                    "sellingPrice" : 1,
                    "count" : 5
            }
    ]
}
Run Code Online (Sandbox Code Playgroud)

那么,请你给我一个建议,如何查询MongoDB以检索所有只有单个项目的产品,其中日期等于我传递给查询作为参数的日期.

"31.08.2014"的结果必须是:

    {
    "_id" : ObjectId("54023e8bcef998273f36041d"),
    "shop" : "shop1",
    "name" : "product1",
    "items" : [
            {
                    "date" : "31.08.2014",
                    "purchasePrice" : 10,
                    "sellingPrice" : 1,
                    "count" : 5
            }
    ]
}
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

14
推荐指数
1
解决办法
2万
查看次数

MongoDB aggreagte填补缺失的天数

我有一个包含以下文件的产品系列:

{ "_id" : 1, "item" : "abc", created: ISODate("2014-10-01T08:12:00Z") }
{ "_id" : 2, "item" : "jkl", created: ISODate("2014-10-02T09:13:00Z") }
{ "_id" : 3, "item" : "hjk", created: ISODate("2014-10-02T09:18:00Z") }
{ "_id" : 4, "item" : "sdf", created: ISODate("2014-10-07T09:14:00Z") }
{ "_id" : 5, "item" : "xyz", created: ISODate("2014-10-15T09:15:00Z") }
{ "_id" : 6, "item" : "iop", created: ISODate("2014-10-16T09:15:00Z") }
Run Code Online (Sandbox Code Playgroud)

我想绘制一个描述产品数量的图表,所以我使用mongodb聚合框架按天计算产品组:

  var proj1 = {
      "$project": {
          "created": 1,
          "_id": 0,
          "h": {"$hour": "$created"},
          "m": {"$minute": "$created"},
          "s": {"$second": …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

14
推荐指数
1
解决办法
2493
查看次数

MongoDB:查询具有两个相等字段的文档,$ match和$ eq

如果我想要document.a == document.b,那么返回集合中所有文档的最佳方法是什么?

我试过了

db.collection.aggregate([ { $match: { $eq: [ '$a', '$b' ] } }])
Run Code Online (Sandbox Code Playgroud)

但它返回没有错误或结果,因为我认为它字面上匹配字符串"$ a"和"$ b".是否有不同的方法来指定这些是字段?

db.collection.aggregate([    { $project: { 
    eq: { $cond: [ { $eq: [ '$a', '$b' ] }, 1, 0 ] } 
} },
{ $match: { eq: 1 } }])
Run Code Online (Sandbox Code Playgroud)

上述工作,但需要额外的步骤,使用它找到的任何文件或预测所有可能的字段再次查询.

有没有更好的方法来实现此查询?

database mongodb node.js npm aggregation-framework

14
推荐指数
2
解决办法
1万
查看次数

有没有办法以unix格式向ISODate显示时间戳?

我们在MongoDB中使用unix时间戳存储了一个日期,如何在查询时获取日期?有没有办法以ISODate格式显示时间戳?

mongodb mongodb-query aggregation-framework

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

合并MongoDB聚合中的数组字段

使用MongoDB聚合框架时是否可以合并数组字段?以下是我要解决的摘要问题:

用于聚合的示例输入文档:

{
  "Category" : 1,
  "Messages" : ["Msg1", "Msg2"],
  "Value" : 1
},
{
  "Category" : 1,
  "Messages" : [],
  "Value" : 10
},
{
  "Category" : 1,
  "Messages" : ["Msg1", "Msg3"],
  "Value" : 100
},
{
  "Category" : 2,
  "Messages" : ["Msg4"],
  "Value" : 1000
},
{
  "Category" : 2,
  "Messages" : ["Msg5"],
  "Value" : 10000
},
{
  "Category" : 3,
  "Messages" : [],
  "Value" : 100000
}
Run Code Online (Sandbox Code Playgroud)

我们希望按"类别"进行分组,同时总结"价值"并合并"消息".我试过这个聚合管道:

{group : {
        _id : "$Category",
        Value : { …
Run Code Online (Sandbox Code Playgroud)

mongodb aggregation-framework

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

Mongodb - 错误查询:BadValue未知顶级运算符:$ gte

这个查询有什么问题?我试图在mongodb服务器上运行它并收到如下错误 - "异常:错误的查询:BadValue未知的顶级操作符:$ gte".有人能告诉我它有什么问题吗?

        db.scores.aggregate([ 
            { 
                $match: { 
                    $or: [ 
                        { $gte: [ "$score", 30 ] }, 
                        { $lte: [ "$score", 60 ] } 
                    ] 
                } 
            },
            { 
                $group: { 
                    _id: "$gamer",
                    games: { $sum: 1 }
                } 
            }
        ])
Run Code Online (Sandbox Code Playgroud)

样本数据 :

        {
            "_id" : "545665cef9c60c133d2bce72",
            "score" : 85,
            "gamer" : "Latern"
        }

        /* 1 */
        {
            "_id" : "545665cef9c60c133d2bce73",
            "score" : 10,
            "gamer" : "BADA55"
        }

        /* 2 */
        {
            "_id" : "545665cef9c60c133d2bce74",
            "score" : 62,
            "gamer" : "BADA55" …
Run Code Online (Sandbox Code Playgroud)

javascript mongodb mongodb-query aggregation-framework

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