【发布时间】:2020-05-13 23:28:27
【问题描述】:
我正在寻找一种方法来查询数据库以获取集合中最后保存的条目。 我有一个函数可以将文档保存到集合中,这就是我保存的集合的样子。
{
"_id": {
"$oid": "5ebbf2b4586b4946226e2c88"
},
"name": "Stept_1",
"description": "",
"coordinates": {
"pose": {
"$numberInt": "0"
},
"x": {
"$numberDouble": "-9.760518723445719"
},
"y": {
"$numberDouble": "-3.4586615766853854"
},
"z": {
"$numberInt": "0"
}
},
"depth": {
"$numberInt": "1"
},
"_neighbours": [],
"optional": {},
"__v": {
"$Reference": "1111111"
}
}
每个文档都以升序保存名称,例如name:Step_1, Step_2 etc。
我尝试使用聚合方法获取最后保存的文档,例如
db.collection.aggregate([
{ $sort: { name: -1 } },
{ $group: { _id: "$Reference", name: { $first: "$name" } } }
])
这会按升序返回数据,直到name:Step_10,即“Step_1,2,3,...”,但在name:Step_1o 之后一次,如果我重新启动应用程序并再次开始获取最后保存的文档,则升序索引返回到name:Step_9,然后导致一些文档的一些重复条目。我正在寻找的是它在获取这些文档时应该始终遵循自然顺序(即 Step_1,2,3,..11,12,13 等)。
提前致谢。
【问题讨论】: