当我在Mongo shell中传递一个有多个插入的长行时,我会得到不清楚的错误:
2020-07-13T15:59:21.264+0100 E QUERY [js] uncaught exception: SyntaxError: expected expression, got ']' :
@(shell):1:0
我发现这是由于行缓冲长度引起的。
我该如何增加它的长度呢?
当我在Mongo shell中传递一个有多个插入的长行时,我会得到不清楚的错误:
2020-07-13T15:59:21.264+0100 E QUERY [js] uncaught exception: SyntaxError: expected expression, got ']' :
@(shell):1:0
我发现这是由于行缓冲长度引起的。
我该如何增加它的长度呢?
似乎Mongo shell行长度有一个硬性限制:
Shell @ MongoDB Limits and Thresholds
每行mongo shell提示符的代码点数有4095个的限制。如果您输入的行超过4095个代码点,shell将对其进行截断。
这里有更多细节。
以及4095个代码点
的确切限制来源
显然,没有一种方法可以配置和扩展它。
如果这对您是一个选项,一个简单的方法来解决这个限制就是将您的语句分成多行。
例如,如果您的语句看起来像这样:
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]
}
}
}])
db.knodes.insertMany([ /* ... */])
,大约有20个对象,总共超过10K个字符。 - mPrinC