mongo查询中的字段值是否有长度限制?

Par*_*ker 4 mongodb

我在一个集合中有一个文档:

{
  _id: ObjectId("508836afea5cea2ccec11a0d"),
  created_at: 1348657869.204,
  name: "Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx Abcdefghijklmnopqrstuvwx"
}
Run Code Online (Sandbox Code Playgroud)

我可以找到它

find({"created_at":1348657869.204})
Run Code Online (Sandbox Code Playgroud)

find({"name":"Abcd...<actual name here>...uvwx"})
Run Code Online (Sandbox Code Playgroud)

没有结果.查询中的字段是否有长度限制?

Ste*_*nie 20

您遇到的限制是mongoshell中的最大行缓冲区大小,即MongoDB 2.2.1中的4096字节.如果您尝试在mongoshell中粘贴示例,则应注意不能添加超出行限制的任何字符.

如果从语言驱动程序执行此查询,则不会出现此问题.

您还可以mongo通过从命令行中指定的JavaScript文件加载查询来在shell中解决此问题:

 mongo longname.js
Run Code Online (Sandbox Code Playgroud)

或者通过mongo编程方式在shell中创建一个长字符串:

// Longname will be 5000 characters
var longname = '';
for (i = 0; i < 200; i++) {
    longname += 'Abcdefghijklmnopqrstuvwx ';
}

db.foo.insert({
  _id: ObjectId("508836afea5cea2ccec11a0d"),
  created_at: 1348657869.204,
  name: longname
});

printjson(db.foo.findOne({name: longname}))
Run Code Online (Sandbox Code Playgroud)

  • 哇,他们把它作为预处理器指令烘烤到了二进制文件中。https://github.com/mongodb/mongo/blob/master/src/mongo/shell/linenoise.cpp#L141 &lt;-撰写本文时的行号 (2认同)