我想通过过滤器查询Mongodb的最后3个文档。在数据库中,我每15分钟收到300个文件,现在在我的数据库中我有近10,000个文件,在每300个文件中我有一个字符串字段包含 SYSTEM_000_00_SAVING
示例 这就是我的数据库的样子
{
"_id" : ObjectId("5a81986d7aee9536681af520"),
"Data" : "02-02-2017 00:17:22 SYSTEM_000_00_SAVING "
}
{
"_id" : ObjectId("5a81986d7aee9536681af521"),
"Data" : "02-02-2017 00:17:22 SyTime_000_09_00:00 "
}
{
"_id" : ObjectId("5a81986d7aee9536681af522"),
"Data" : "02-02-2017 00:17:22 DPMPow_P01_04_ 0.00 "
}
.....某某289或300之后我会再收到
{
"_id" : ObjectId("5a81990c7aee9536681cda23"),
"Data" : "03-03-2017 23:58:11 SYSTEM_000_00_SAVING "
}
{
"_id" : ObjectId("5a81990c7aee9536681cda22"),
"Data" : "03-03-2017 23:58:11 AHOnff_028_00_0 "
}
{
"_id" : ObjectId("5a81990c7aee9536681cda21"),
"Data" : "03-03-2017 23:58:10 AHTime_027_09_22:53 "
}
这是我尝试过的-1和1
db.getCollection('ROB_CAP').find({"Data" : /.*SAVING.*/}).sort({_id:1}).limit(3)
上面的查询正在运行,但它显示我的结果不正确。
查询结果排序({_ id:1})
{
"_id" : ObjectId("5a81986d7aee9536681af520"),
"Data" : "02-02-2017 00:17:22 SYSTEM_000_00_SAVING "
}
{
"_id" : ObjectId("5a81986d7aee9536681af667"),
"Data" : "02-02-2017 00:32:23 SYSTEM_000_00_SAVING "
}
{
"_id" : ObjectId("5a81986e7aee9536681af7ae"),
"Data" : "02-02-2017 00:47:24 SYSTEM_000_00_SAVING "
}
查询结果排序({_ id:-1})
{
"_id" : ObjectId("5a81987a7aee9536681b6901"),
"Data" : "02-02-2017 23:48:56 SYSTEM_000_00_SAVING "
}
{
"_id" : ObjectId("5a81987a7aee9536681b67b3"),
"Data" : "02-02-2017 23:33:55 SYSTEM_000_00_SAVING "
}
{
"_id" : ObjectId("5a81987a7aee9536681b666c"),
"Data" : "02-02-2017 23:18:54 SYSTEM_000_00_SAVING "
}
在数据库中,我有从02-02-2017到2017年10月10日的数据,我想从10-10-2017收到上述查询的最后3个文件,但是从开始日期开始显示数据。
如果需要,请告诉我更多信息。答案 0 :(得分:0)
我的错误查询正如我预期的那样正常。 实际问题是在数据中,我删除了收集并再次上传数据,它工作。
db.getCollection('ROB_CAP').find({"Data" : /.*SAVING.*}).sort({_id:1}).limit(3)
如果有人想使用Filter查询MongoDB来获取N个最新的Document,那么将来。随意测试这个查询它会工作.. 我已经在Robo3T -1.1上测试了这个查询