group by date 聚合查询日期 统计每天数据(信息量)
1
{ "_id" : ObjectId("557ac1e2153c43c320393d9d"), "msgType" : "text", "sendTime" : ISODate("2015-06-12T11:26:26.000Z") }
2
{ "_id" : ObjectId("557ac1ee153c43c320393d9e"), "msgType" : "text", "sendTime" : ISODate("2015-06-12T11:26:38.000Z") }
3
{ "_id" : ObjectId("557ac2012de5d32d213963b5"), "msgType" : "text", "sendTime" : ISODate("2015-06-12T11:26:56.000Z") }
4
{ "_id" : ObjectId("557ac978bb31196e21d23868"), "msgType" : "text", "sendTime" : ISODate("2015-06-12T11:58:47.000Z") }
5
{ "_id" : ObjectId("557ac9afbb31196e21d23869"), "msgType" : "text", "sendTime" : ISODate("2015-06-12T11:59:43.000Z") }
SQL Here
db.getCollection('wechat_message').aggregate( [ { $project : { day : {$substr: ["$sendTime", 0, 10] }}}, { $group : { _id : "$day", number : { $sum : 1 }}}, { $sort : { _id : -1 }} ] )
Result Here
"result" : [ { "_id" : "2015-07-06", "number" : 13.0000000000000000 }, { "_id" : "2015-07-05", "number" : 3.0000000000000000 }, { "_id" : "2015-07-03", "number" : 10.0000000000000000 }, { "_id" : "2015-07-02", "number" : 29.0000000000000000 }, ]
查询某一天所有信息的3种方法,根据日期查询
mongodb的查询真让人难以琢磨,就查询单天信息,都需要花费一番功夫才行。
第一种方式:
coll.aggregate([ {$project:{sendDate: {$substr: ['$sendTime', 0, 10]}, sendTime: 1, content:1}}, {$match:{sendDate: '2015-07-05'}}, ])
第二种方式(第一种的变异):
coll.aggregate([ {$match: {'sendTime': {'$gte': new Date('2015-07-05'), '$lt': new Date('2015-07-06')}}}
第三中方式(第二种的变异):
coll.aggregate([ {$match: {'sendTime': {'$gte': new Date('2015-07-05 00:00:00'), '$lte': new Date('2015-07-05 23:59:59')}}}
查询结果如下(展示一种方式:其他展示略有不同):
[ { _id: 5599b09bc16aac90e9fb7995, sendDate: '2015-07-05' }, { _id: 5599b161c16aac90e9fb7996, sendDate: '2015-07-05' }, { _id: 5599b161c16aac90e9fb7997, sendDate: '2015-07-05' } ]
我已经创建了摘要仪表板来显示应用程序中的一些错误。我想要的是显示每个日期的错误。它显示错误,但它不会聚合相同的错误消息,因为消息有一些GUID。这是查询的示例部分: 在此输入图像描述
问题内容: 我在集合中将值存储为java.util.Date(),但是当我查询以获取两个特定日期之间的值时,最终得到的值超出了范围。这是我的代码: 插入 查询 当我在和之间查询时(基本上是fromDate = toDate),我得到的日期绝对不可能的对象。我在这里想念什么? 问题答案: 您正在执行的操作是仅在键覆盖中使用丢失运算符进行查询。您想要的是:
此问题是由打字错误或无法再复制的问题引起的。虽然这里可能有类似的问题,但这一问题的解决方式不太可能对未来的读者有所帮助。 我正在尝试向mongoDB查询“日期”在两个日期之间的文档。示例数据是: 我的Java代码是: 但游标对象没有结果。 查询对象如下所示: 我怀疑问题是DB中的日期表示。对此有什么建议吗?
如果日期相同,则使用进行查询将无法正常工作。它更像是。 但如果我给query param加上1秒,它就会工作。 下面是示例查询; 我有一个文档,它是时间戳。 此查询与日期为的文档相匹配,如果我将查询时间戳增加一个,如。 我正在使用mongo控制台,但我在php中遇到了与MongoDate相同的问题 编辑:查询的输出 edit2:问题是mongo的php扩展。它记录了“当文档发送到/从数据库发送时,
问题内容: 我知道ObjectIds包含创建日期。有没有办法查询ObjectId的这一方面? 问题答案: 将时间戳弹出到ObjectId中将详细介绍基于嵌入在ObjectId中的日期的查询。 简要介绍一下JavaScript代码:
这是当我尝试使用'where'而不是'where field'时收到的错误,尽管从文档中看,'where'似乎是查询Firestore数据库的有效命令。是不是我需要下载其他的豆荚?我有的是:pod'firebase/analytics'pod'firebase/auth'pod'firebase/core'pod'firebase/firestore'