Mongodb以自然顺序聚合

编程入门 行业动态 更新时间:2024-10-09 14:27:36

Mongodb以自然<a href=https://www.elefans.com/category/jswz/34/1771364.html style=顺序聚合"/>

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以自然顺序聚合

本文发布于:2024-05-07 13:28:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756456.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:顺序   自然   Mongodb

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!