Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb查询仅获取特定日期内的文档_Mongodb - Fatal编程技术网

Mongodb查询仅获取特定日期内的文档

Mongodb查询仅获取特定日期内的文档,mongodb,Mongodb,在我的mongodb表中,我有两列(与此Q相关):服务,timestamp。 我只想查询具有service=liveness和时间戳为2020年11月12日的行 如果时间戳字段的类型为编号(UNIX历元编号)…,我该怎么做 这是我目前的查询: {service:“liveness”} 这是时间戳列的外观: 要通过两个字段进行查询,您只需要以下语法: db.collection.find({ “field1”:您的field1值, “field2”:您的field2值 因此,如果您的日期是数字而

在我的mongodb表中,我有两列(与此Q相关):
服务,timestamp
。 我只想查询具有
service=liveness
和时间戳为2020年11月12日的行

如果
时间戳
字段的类型为
编号
(UNIX历元编号)…,我该怎么做

这是我目前的查询:
{service:“liveness”}

这是时间戳列的外观:

要通过两个字段进行查询,您只需要以下语法:

db.collection.find({
“field1”:您的field1值,
“field2”:您的field2值
因此,如果您的日期是
数字
而不是
日期
,您可以尝试以下查询:

db.collection.find({
“服务”:“活力”,
“时间戳”:1600768437934
})
而且应该有效。例如

现在,如果问题是将2020年11月12日解析为UNIX时间戳,那么最简单的方法是首先用应用程序语言转换日期

编辑:

另外,我不知道我是否误解了你的问题,但是,另一个问题

db.collection.aggregate([
{
“$match”:{
“服务”:“活力”,
}
},
{
“$project”:{
“时间戳”:{
$toDate:“$timestamp”
}
}
},
{
“$match”:{
“时间戳”:{
“$gt”:ISODate(“1990-01-01”),
“$lt”:ISODate(“2060-01-01”)
}
}
}
])
此查询首先将所有文档与
服务
匹配为
活跃度
,因此下一阶段更快。在
$project
中,时间戳被解析为
日期
,以便您可以再次与日期匹配。
使用
$gt
$lt
可以搜索一整天

此外,如果您可以获取UNIX时间戳中的天数,则可以执行以下操作:

db.collection.find({
“服务”:“活力”,
“时间戳”:{
“$gte”:你的一天,
“$lt”:下一天
}
})
使用
$gte
$lt
可以确保查询将找到当天的所有值