如何在Mongo shell中增加行限制

3

当我在Mongo shell中传递一个有多个插入的长行时,我会得到不清楚的错误:

2020-07-13T15:59:21.264+0100 E  QUERY    [js] uncaught exception: SyntaxError: expected expression, got ']' :
@(shell):1:0

我发现这是由于行缓冲长度引起的。

我该如何增加它的长度呢?


1
很可能你在某个地方打错了字。 - D. SM
1
这个有用吗:https://stackoverflow.com/questions/61606646/insert-large-record-into-mongodb-using-mongo-shell/61609037#61609037 - prasad_
添加命令在这里。 - Yahya
它是 db.knodes.insertMany([ /* ... */]),大约有20个对象,总共超过10K个字符。 - mPrinC
2个回答

1

似乎Mongo shell行长度有一个硬性限制:

Shell @ MongoDB Limits and Thresholds

每行mongo shell提示符的代码点数有4095个的限制。如果您输入的行超过4095个代码点,shell将对其进行截断。

这里有更多细节

以及4095个代码点的确切限制来源

显然,没有一种方法可以配置和扩展它。


0

如果这对您是一个选项,一个简单的方法来解决这个限制就是将您的语句分成多行。

例如,如果您的语句看起来像这样:

db.my_collection.aggregate([{
  "$match": {
    "foo": {
      "$in": [1, 2, 3, 4, 5, 6, (...), 2000, 2001, 2002] // line longer than supported
    }
  }
}])

你可以将长行分成较小的块,以便每行不超过限制:

db.my_collection.aggregate([{
  "$match": {
    "foo": {
      "$in": [1, 2, 3, 4, 5, 6, (...), // line shorter than limit
        2000, 2001, 2002]
    }
  }
}])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接