- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在 oplog.rs 集合中有如下内容:
{
"ts" : Timestamp(1401265282, 41),
"h" : NumberLong(-8979599167307291610),
"v" : 2,
"op" : "i",
"ns" : "test",
"o" : {
...........
}
}
使用 Robomongo 工具我输入以下查询:
db.oplog.rs.find({"ts": Timestamp(1401265282,41)})
我一无所获:(
当我在控制台中使用 mongo 客户端工具时,它可以正常工作。
那么 Robomongo 工具有什么问题吗?我想使用此工具来管理我们的数据,但卡在了这里。
最佳答案
这是可能的问题(我已经在我自己的 Robomongo 副本上重新创建了它)。我可以在 Robomongo 中查询正在运行的 db['oplog.rs'].find()
或 db['oplog.rs'].findOne()
并且没有任何问题。但是当我在查询中指定“ts”字段时,它会运行很长时间然后什么都不返回。
oplog.rs 集合是一个特殊的上限集合。上限在于它会在达到设定大小时自动删除最旧的文档 - http://docs.mongodb.org/manual/core/capped-collections/
请注意,对于上限集合,通常的方法是按插入顺序进行查询,最年轻或最旧的文档排在最前面:
Query a Capped Collection
If you perform a find() on a capped collection with no ordering specified, MongoDB guarantees that the ordering of results is the same as the insertion order.
To retrieve documents in reverse insertion order, issue find() along with the sort() method with the $natural parameter set to -1, as shown in the following example:
db.cappedCollection.find().sort( { $natural: -1 } )
特别之处在于 oplog.rs 有额外的限制,因为它是作为系统级集合控制复制的角色。这会导致一些额外的限制,我稍后会详细讨论。
不过,首先,让我们讨论一下这里发生了什么。 oplog.rs 中的“ts”字段没有索引。因此,如果您运行了任意时间长度的复制,则此查询将需要一些时间来运行:
By default, the size of the oplog is as follows:
- For 64-bit Linux, Solaris, FreeBSD, and Windows systems, MongoDB allocates 5% of the available free disk space, but will always
allocate at least 1 gigabyte and never more than 50 gigabytes.- For 64-bit OS X systems, MongoDB allocates 183 megabytes of space to the oplog.
- For 32-bit systems, MongoDB allocates about 48 megabytes of space to the oplog.
这样查询就可以运行很长时间。此外,在查询完成时,您的文档可能已被删除。为什么?因为 oplog.rs 将删除最旧的文档以保持在上限大小以下。然而,如果您执行 findOne() 来提取示例文档,它可能会对它进行排序以提取集合中最旧的文档——这可能距离被删除仅几秒钟之遥。您可以通过在繁忙的系统上对 oplog.rs 重复运行 findOne() 来自己尝试 - 您每次都会不断获得不同的文档。
有些人之前曾尝试通过在 oplog.rs 中的“ts”字段上创建索引来解决这个问题,但没有奏效。原因是由于 oplog.rs 的特殊性——索引会创建但不会更新。有关详细信息,请参见此处的讨论:Index on ts field in oplog.rs is not updated
总的来说,Robomongo 的问题可能更严重(它在错误消息上有点轻,并且不清楚何时超时),但根本原因在 MongoDB 架构中更深层次。
关于mongodb - 无法通过 Robomongo 工具查询 TimeStamp oplog.rs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24154801/
来自 JSR-339: For simplicity, JAX-RS implementations are NOT REQUIRED to support processing groups oth
JAX-RS 提供了 StreamingOutput 接口(interface),我们可以实现它来对我们的响应主体进行原始流处理。 public interface StreamingOutput {
有没有办法获得java.lang.reflect.Method为给定的 @Path 调用的方法(用 HttpServletRequest 注释) ? 这是我的用例:我在 Java EE 中 Filte
我接到了一家公司的任务,该任务向我发送了一台已完成所有设置的虚拟机。任务是我必须创建一个 API 来从数据库中检索人员详细信息并显示它。 问题是,当我运行应用程序时,服务器返回一个包含 hello w
我有一个 POST 方法调用,它接受很少的表单参数。我希望 JAX-RS 能够处理不存在特定表单参数的情况。 示例: @POST @Produces (MediaType.APPLICATION_JS
我有 JAX-RS 网络应用程序,我想记录从获取请求到响应的时间量。在带有 servlet 过滤器的 Spring Boot 中很容易。但是我的应用程序中的过滤器无法正常工作: @Provider p
使用以下网址。 http://doma.in/context/resource/some/.../undefined 我想获取 ../resource 之后的路径名,即 /some/.../undef
Closed. This question is off-topic。它当前不接受答案。
我花了几个小时在嵌入式 Jetty 9.1.0.v20131115 和 RESTEasy 3.0.5.Final 中安装自定义登录服务。我的登录服务将在数据库中查找用户并为他们分配角色。它看起来像这样
RESOURCE_STALLS.RS的说明Intel Broadwell 的硬件性能事件如下: This event counts stall cycles caused by absence of
我想从 java 服务器 (Restful Jax-rs) 发送图像。我的客户是安卓。 @GET public Response getUserImage() { byte[] image =new
(特别是 RESTeasy) 具有如下方法签名会很好(对于单个文件): public void upload(@FormParam("name") ..., @FormParam("file") fi
RESTEasy (JAX-RS) 允许通过子资源进行动态调度。例如: POST /customers/create {"name":"Smith","country":"jp"} 我们可以有一个根资
假设有一个 ResultSet rs 和 n 对象。 这段代码: while(rs.next()) { // do something on rs } 在算法上等于此代码(即两者给出相同的结果)
我正在使用 Visual Studio 2005 和 mysql 4.0,我有一个表,其中包含一个字段(十进制 16,4),用于存储发票金额和另一个表,其中包含对该发票的付款(这些字段也是十进制的)
我正在使用 JAX-RS、Microprofile 和 Payara 5 构建 REST 服务。我的方法返回类型为 Response 的对象。响应本身包含一个 MyClass 列表。实现看起来像这样:
我已经使用 Mock MVC 成功地为 Spring MVC REST 服务构建了无需部署的集成测试框架。我正在努力对 JAX-RS 服务做同样的事情。 REST Assured 看起来很有希望,但它
我有一个使用JAX-RS 2.0的Jersey实现的Java应用程序,并且我想在客户端启用gzip压缩。服务器已启用它,并且通过在Chrome中的开发人员工具中的“大小/内容”中查找客户端正在使用的特
我正在尝试与 Tomcat7 一起使用 RESTful Web 服务 (JAX-RS)。我尝试了 3 种不同的实现(Jersey、RESTeasy 和 ReSTLet),但都没有成功。这应该很容易,但
swagger-api有什么区别和 JAX-RS ? 是swagger-api仅用于文档? (例如 @ApiOperation ) 最佳答案 根据 API 文档,JAX-RS是用于 RESTful W
我是一名优秀的程序员,十分优秀!