mongodb使用skip和limit排序不根据索引对记录进行排序

2024-06-02

我正在尝试使用 Mongodb 进行分页skip and limit.

我想要按顺序获取页面记录register_time。在数据库中,记录是按索引排序的,而不是按register_time.

如何使多页记录(多次跳转)遵循相同的内容register_time order ?

db.collection.aggregate(
[ { "$project" : { "os" : "$os", 
                   "register_time" : "$register_time", 
                   "channel" : "$channel", 
                   "event" : "$event", 
                   "user_id" : "$user_id" } }, 
   { "$match" : { "register_time" : 
                { "$gt" : ISODate("2016-06-23T00:00:00Z"), 
                  "$lt" : ISODate("2050-06-25T23:59:00Z") }, 
                  "event" : "Register_with_number", 
                  "channel" : "001" } }, 
   { "$group" : { "_id" : 
                  { "register_time" : "$register_time", 
                    "user_id" : "$user_id", 
                    "os" : "$os", 
                    "channel" : "$channel" }, 
                  "count" : { "$sum" : 1 } } },
   {"$skip":4},
   {"$limit":10}, 
   { "$sort" :  {"_id.register_time" : -1 } } ])

这是skip result

 { "_id" : { "register_time" : ISODate("2016-06-24T08:49:36Z"), "user_id" : "65675f96", "os" : "Android", "channel" : "040401" }, "count" : 1 }
 { "_id" : { "register_time" : ISODate("2016-06-24T06:29:56Z"), "user_id" : "f61d0572", "os" : "Android", "channel" : "040401" }, "count" : 1 }
 { "_id" : { "register_time" : ISODate("2016-06-24T04:13:31Z"), "user_id" : "d7d1349d", "os" : "Android", "channel" : "040401" }, "count" : 1 }
 { "_id" : { "register_time" : ISODate("2016-06-24T03:40:13Z"), "user_id" : "ecea2908", "os" : "Android", "channel" : "040401" }, "count" : 1 }

这是第二个skip result:

{ "_id" : { "register_time" : ISODate("2016-06-24T09:05:13Z"), "user_id" : "6fde06a6", "os" : "Android", "channel" : "040401" }, "count" : 1 }
{ "_id" : { "register_time" : ISODate("2016-06-24T07:47:46Z"), "user_id" : "1e5e5712", "os" : "Android", "channel" : "040401" }, "count" : 1 }
{ "_id" : { "register_time" : ISODate("2016-06-24T05:34:55Z"), "user_id" : "47dfaa32", "os" : "Android", "channel" : "040401" }, "count" : 1 }
{ "_id" : { "register_time" : ISODate("2016-06-24T05:15:03Z"), "user_id" : "70960ae2", "os" : "Android", "channel" : "040401" }, "count" : 1 }

如您所见,这两个页面register_time不遵循相同的顺序。

如何使不同的页面(跳过)遵循一个一致的顺序?谢谢。


你需要移动$sort before $limit and $skip

当做$limit您正在限制集合中的随机文档,并且下一个管道条目基于随机输入

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mongodb使用skip和limit排序不根据索引对记录进行排序 的相关文章

  • 获取背景图片url值

    我正在尝试获取背景图像 url 的值 url 直接在元素标签中使用 style 属性内联设置 如下所示 a style background image none a 我尝试做 var url this css background ima
  • 过滤$lookup结果

    我有 2 个集合 带有示例文档 reports id R1 type xyz 报告文件 id F1 reportid R1 time ISODate 2016 06 13T14 20 25 812Z id F14 reportid R1 t
  • 如何获取从中提取数据的服务器的服务器地址

    我知道我们使用cursor getServerAddress 在Java 驱动程序中拥有它 但是 我在 C 中找不到任何相关的调用 不幸的是 在深入研究 C 驱动程序源代码 以及 Java 源代码以了解它在做什么 之后 用作获取一部分的实际
  • 当数据大小超过 500 万时,在 mongoDb 中从 java 调用 find() 查询会变慢

    我的应用程序在从 java 的 mongoDb 中执行 find 操作时遇到性能问题 当数据大小超过 500 万时 需要花费大量时间 有时搜索单个文档需要数千毫秒 任何意见都将受到赞赏 java查找查询 db test find flag
  • 在mongo聚合中选择* group by

    我正在尝试做一些我认为很简单的事情 假设我在 mongo 中有一系列具有公共键和可变数量属性的记录 我想选择记录中的所有属性并按名称分组 例如 Name George x 5 y 3 Name George z 9 Name Rob x 1
  • 将 mongoid 会话设置为只读

    我有不同的会话mongoid yml 其中一个会话提供来自静态 mongo 数据库的数据 我想知道是否有可能以只读模式 加载 会话 以便不进行任何更改save create destroy or destroy all可以制作 我的mong
  • 使用 MongoDB PHP 驱动程序时的安全问题

    我有在 MYSQL 上保护 sql 注入的经验 但是在使用 php 驱动程序的 MongoDB 上我应该注意什么 在大多数页面中 我通过 GET POST 和搜索 插入系统获取数据 我通过 UDID 其他字段进行搜索 并且可以插入任何字符串
  • 使用 mongodb-reactive 的反应式 Spring boot 应用程序中的多租户

    我们如何使用 Mongodb reactive 存储库在 spring webflux 中创建多租户应用程序 我在网上找不到任何有关反应式应用程序的完整资源 所有可用资源均适用于非反应式应用程序 UPDATE 在非响应式应用程序中 我们过去
  • 如何避免 mongodb 聚合框架中的 $pushing null

    如果该字段不存在 push 会聚合空值 我想避免这种情况 有没有办法为 push 运算符创建子表达式 以便跳过空值而不将其推入结果数组中 聚会有点晚了 但是 我想做同样的事情 发现我可以用这样的表达式来完成它 Pushes events o
  • node-mongodb-native MongoClient 意外关闭连接

    我一直在 mongodb 中搜索大量意外关闭的连接 但只能找到希望关闭连接的人提出的问题 我正在使用 node mongodb native 连接到数据库 但我不断收到看似随机的 错误 连接已关闭 消息 如果我手动重试请求 浏览器刷新 则请
  • Spring boot 2.0.5.RELEASE和mongo 4.0连接问题

    我正在关注使用 MongoDB 访问数据教程春季网站 https spring io guides gs accessing data mongodb 我将 Mongo DB 服务器版本 4 安装为服务当我使用客户端连接到它时 它的身份验证
  • 如何在Spring Boot中初始化一次MongoClient并使用它的方法?

    您好 我正在尝试导出MongoClient在 Spring Boot 中成功连接后 我尝试在其他文件中使用它 这样我就不必每次需要在 MongoDB 数据库中进行更改时都调用该连接 连接非常简单 但目标是将应用程序连接到我的数据库一次 然后
  • MongoDb 如何按月和年聚合

    我是 mongodb 新手 正在尝试学习 MongoDB 查询 id ObjectId 59815d4704ca1760a45957ca userEmail email protected cdn cgi l email protectio
  • Meteor `Deps.autorun` 与 `Collection.observe`

    使用之间有什么优点 缺点Deps autorun or Collection observe使第三方小部件与反应式小部件保持同步Meteor Collection 例如 我使用 jsTree 直观地显示我存储在 MongoDB 中的目录树
  • Mongoose Schema“新”关键字

    在声明猫鼬模式时 我注意到使用 mongoose Schema and new mongoose Schema work 有什么区别吗 哪种方式更好 这是同一件事 来自source https github com LearnBoost m
  • 各种NoSQL数据库快速参考指南

    我正在寻找一个地方来总结我不断看到的引用的 NoSQL 数据库的主要属性 特别是 MongoDB Riak Redis Memcached Membase 和 Cassandra 查询类型 酸 扩展的架构 属性等 全部在内存中 溢出到磁盘
  • 如何从集群外部访问Kubernetes中的MongoDB

    我使用以下 Helm Chart 在 Kubernetes 集群中部署了 mongodb https github com helm charts tree master stable mongodb https github com he
  • Mongoose:如何在不填充第一层字段的情况下填充 2 层深层人口?在 mongodb 中

    这是我的猫鼬架构 var SchemaA new Schema field1 String fieldB type Schema Types ObjectId ref SchemaB var SchemaB new Schema field
  • mongodb c# 驱动程序 - 继承、映射和序列化问题

    我有以下存储在 mongodb 中的对象的类层次结构 我仅在其图中存储分支对象和实体 public class Branch Aggregate public IEnumerable
  • MongoDB 找不到 Promise 类型定义

    我创建了一个新项目 安装了一些类型定义 来自DefinitelyTyped 并制作了一个基本的src go ts file 每当我转译代码时 我都会得到大量TS2304 Cannot find name Promise errors The

随机推荐

  • 与 PHP 相比,Python 与 HTML 的“流畅”程度如何?

    我正在考虑从使用 PHP 切换到使用 Python 来开发 Web 应用程序 但我想知道 Python 是否像 PHP 一样擅长在 HTML 中穿插 本质上 我发现它使用起来非常简单 直观将 PHP 放在我想要的位置 然后可以随意安排 组织
  • Python subprocess.Popen 结果存储在变量中

    我看过关于此的各种其他帖子 但不幸的是我仍然无法弄清楚 如果我做这样的事情 temp subprocess Popen whoami shell True stdout subprocess PIPE out temp communicat
  • Python中的打印类型是什么? [复制]

    这个问题在这里已经有答案了 sum是Python中的内置函数 所以这就是我得到这个输出的原因 gt gt gt type sum
  • gevent.StreamServer 和非阻塞 raw_input()?

    我使用以下命令编写了一个简单的 tcp 服务器gevent StreamServer用于测试目的 为了让我向某些客户端发送响应 我需要一种非阻塞方式来处理输入raw input 最好不使用线程 经过一番谷歌搜索后 我偶然发现了这个问题 使用
  • 复制单元格包含多条数据的行

    我想获取一个数据框并复制某些行 一列 称为name 可能有多个名称 下面构建了一个示例数据框 data Joe 17 11 2018 2 Karen 17 11 2018 4 Bill Avery 17 11 2018 6 Sam 18 1
  • 主管和环境变量

    我真的不知道如何让主管使用环境变量 下面是一个配置片段 program htNotificationService priority 2 autostart true autorestart true directory home ubun
  • 为什么绑定到 IEnumerable 的 ListBox 不更新?

    我有以下 XAML
  • 如何在可可中使用核心动画对 png 序列进行动画处理(非触摸)

    我想在 NSImageView 中对 png 序列进行动画处理 但我无法使其工作 它只是不想显示任何动画 有什么建议吗 这是我的代码 void imageAnimation NSMutableArray iconImages NSMutab
  • 在 ASP.NET MVC 中设置默认 JSON 序列化器

    我正在开发一个已部分转换为 MVC 的现有应用程序 每当控制器响应 JSON ActionResult 时 枚举都会以数字形式发送 而不是字符串名称 听起来默认的序列化程序应该是 JSON Net 它应该将枚举作为其名称而不是整数表示形式发
  • e_facet 在 echarts4r 问题中使用分组数据

    我真的很喜欢这个包提供的可能性 并且想在一个闪亮的应用程序中使用它 然而我正在努力重新创建从 ggplot 到 echarts4r 的情节 library tidyverse library echarts4r data tibble ti
  • SVN 中的单用户结账

    我想做以下事情 当一个用户正在编辑文件时 SVN 其他用户无法编辑此文件 直到第一个用户提交他的 变化 那就是会有一些 svn 中文件的一种写锁 这在SVN中可能吗 怎么做 是否可以为单个文件或目录 而不是整个存储库 设置此设置 为什么这会
  • 循环表行的最佳方法是什么?

    在 SQL Server 2008 R2 中循环数据库表行的最佳方法是什么 我正在寻找与编写 foreach 非常相似并且性能相当的东西 Thanks 最佳性能 不要循环表的行 使用基于集合的操作 Here s 关于 为什么 的良好讨论 h
  • jQuery JSONP ajax,未设置身份验证标头

    我正在尝试使用以下设置向 google 联系人 API 发出 ajax 请求 ajax url https www opensocial googleusercontent com api people me all dataType js
  • 如何在PHP中完成http响应并进行进一步处理?

    就我而言 我需要向客户端回显一个标志并发送一封电子邮件 现在客户端需要等待电子邮件发送 但我想把这两个步骤分开 该怎么做呢 你可以看一下异步运行 PHP 任务 https stackoverflow com questions 858883
  • Java 使用 Mockito 验证 void 方法调用 n 次

    我正在尝试验证是否在 DAO 内部调用了 void 方法 我正在使用一个提交点 该提交点发送截至该点的结果列表 重置列表并继续 假设我的列表中有 4 件事 并且提交点为 1 我希望 发送 方法被调用 4 次 我可以通过编写来验证该方法是否被
  • PHP正则表达式替换链接url

    我需要添加href 之前http 如果这http 不遵循href or src 以下代码部分有效 部分意味着它考虑 a href 只但不src a s i a href target blank gt 0 a str 预先感谢各位的回复 s
  • 在ctypes回调函数中使用线程锁

    我想使用扭曲应用程序中的 ctypes dll 这里编造的最小示例 from ctypes import from threading import Lock lock Lock dll windll LoadLibrary mydll d
  • 数组数据标准化

    我有一个表示强度 黑到白 的值数组 在 1 0 和 1 0 之间 我需要一种方法将双精度值从 1 0 到 1 0 映射到 0 到 255 并返回 更概括地说 我有一个数据数组 我需要将数据的最小值和最大值映射到提供的最小值和最大值 基本结构
  • SqlException超时未达到

    我们的服务器有时会抛出这个众所周知的异常 超时已过 操作完成之前超时时间已过 或者服务器未响应 当服务器处理大请求时 这种情况会在压力下发生 我做了一些研究 发现我可以改变连接字符串连接超时设置和 或SqlCommand 超时数据读取器属性
  • mongodb使用skip和limit排序不根据索引对记录进行排序

    我正在尝试使用 Mongodb 进行分页skip and limit 我想要按顺序获取页面记录register time 在数据库中 记录是按索引排序的 而不是按register time 如何使多页记录 多次跳转 遵循相同的内容regis