顺序聚合"/>
Mongodb以自然顺序聚合
我正在寻找一种查询数据库以获取集合中最后保存的条目的方法。我有一个将文档保存到集合的功能,这就是我保存的集合的样子。
{
"_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等)。提前致谢。
您可以使用归类来强制数字排序,如下所示:
db.collection.aggregate([
{ $sort: { name: -1 } },
{ $group: { _id: "$Reference", name: { $first: "$name" } } }
],
{ collation : {
locale: "en_US",
numericOrdering: true
}}
)
更多推荐
Mongodb以自然顺序聚合
发布评论