在MongoDB查询中,负限制意味着什么?

时间:2012-03-23 03:48:25

标签: mongodb mongoid

我正在使用Mongoid ruby​​ gem与MongoDB进行交互,当我尝试从查询中获取某个内容时,它会添加$limit: -1(即负数)当我希望它只使用{ {1}}。我尝试在控制台中执行相同的操作,但它没有更改返回的文档。

负面限制意味着什么特别的东西吗?

2 个答案:

答案 0 :(得分:8)

"OP_QUERY" section of the "Mongo Wire Protocol" documentation的“numberToReturn”标题下有一个关于负限制的说明。

  

“如果客户端驱动程序提供'限制'功能(如SQL LIMIT   关键字),然后由客户端驱动程序确保不再   比指定数量的文件返回到调用   应用。如果numberToReturn为0,则db将使用默认值   回报大小。如果数字为负数,则数据库将返回   那个数字并关闭光标。该查询没有进一步的结果   可以拿来。“

有关游标和限制的详细信息,请参阅"Queries and Cursors" documentation,特别是现已删除的"Execution of queries in batches"部分。

答案 1 :(得分:5)

极限值的符号决定了它的“硬限制”还是“软限制”。 “硬限制”(负号)查询在返回最大数量的文档后关闭游标。 “软限制”使光标保持打开状态,以防响应无法满足限制指定的文档数量。