Arrays MongoDB中的计数查询

Arrays MongoDB中的计数查询,arrays,mongodb,Arrays,Mongodb,我是Mongo的新手,尝试编写一个查询来计算今天更新了特定值的配置文件。以下是我正在使用的文档示例: _id:ObjectId("5a786fd3e6a123f9ab262c02") tsAdded:Array tsCrawled:Array tsExtracted:Array 0:Object value: 1517842389 1:Object value: 1517842386 url:"https://example.net/subpage

我是Mongo的新手,尝试编写一个查询来计算今天更新了特定值的配置文件。以下是我正在使用的文档示例:

_id:ObjectId("5a786fd3e6a123f9ab262c02")
tsAdded:Array
tsCrawled:Array
tsExtracted:Array
    0:Object
        value: 1517842389
    1:Object
        value: 1517842386
url:"https://example.net/subpage"
uri:"sgn://example.net/?ident=something"
uriSha1:"0bea74dce41fb8a7660b4e3b11693a387ab4brg7"
source:"companyname"
data:Object
我想对数据集进行计数,这样,如果日期是今天,并且是今天更新的,则只对“tsExtracted”数组中的0对象进行计数的配置文件进行计数。我在使用Mongo管理时使用的一个查询字符串。工作室在下面

{'tsExtracted.value': {$lte: ObjectId('5b4c34600000000000000000')}}.count

其中5b4c34600000000000000000是今天从0h0m开始的日期。任何指导都将不胜感激

这是通过使用以下方法解决的:

db.collection.find({ 'tsExtracted.value': {$gte: 1531699200} }).count()
  • 我最初是在对ObjectId进行比较,这是错误的
  • 我需要为$gte使用纪元时间,因为tsExtracted.value使用它

  • 您是否打算将日期与objectId进行比较?你的mongo版本是什么?您可以使用将objectId转换为4.0中比较前的日期?您好。我正在使用Mongo 3.6.3。我真的很想知道'tsExtracted.object.value[0]'(该数组索引中的第一个或'0'值)的日期,但我挠头想看看是否可以使用ObjectId作为比较,但意识到这是不可能的。请尝试
    {'tsExtracted.value.0':{$lte:date in millis}
    More似乎我甚至不需要在数组中指定索引。通过简单地将日期范围限制到今天,我自然会返回tsExtracted 0索引中包含今天日期的所有文档
    db.collection.find({'tsExtracted.value':{$gte:1531699200}).count()
    感谢您的帮助!