[MongoDB]: Max Query buffer size

 

 

Most of you, if you run a query with more than 4096 characters, you’ll see error as below.

SyntaxError: Unexpected token ILLEGAL

I know lots of have below queries in mind ?

1) What is max size query that we can run on the ./mongo prompt ?
2) How to run huge size query on the database if we can not avoid it like below ?
3) Do we have any setting to increase query buffer size if any.

mongo shell appears that the limit is 4096 characters.

This is not configurable. For such scenarios, I would recommend you to load .js file to the mongo shell.

 

rs0:PRIMARY> db.mydoc.find({ sme : { $in : [“DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2”]},startDate:{$lte:new Date(1466899200000)},endDate:null}).count()
3
rs0:PRIMARY>
rs0:PRIMARY>

 

rs0:PRIMARY>
rs0:PRIMARY>
rs0:PRIMARY> db.mydoc.find({ sme : { $in : [“DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2″,”DUMMY-DATA3″,”DUMMY-DATA1″,”DUMMY-DATA2”
2016-07-01T03:03:29.621-0400 SyntaxError: Unexpected token ILLEGAL
rs0:PRIMARY>
rs0:PRIMARY>
rs0:PRIMARY>
rs0:PRIMARY>
bye
 

As mentioned in MongoDB documentation, you can also specify .js file to the mongo shell. The mongo will then execute the JavaScript directly.

In my example below, if I wrap the query in printjson and execute it as a javaScript file, it works. i.e.

$ cat query.js
printjson(db.mydoc.find({ sme : { $in : [“DUMMY-DATA1″,”DUMMY-DATA2”,
1″,”DUMMY-DATA2″]},startDate:{$lte:new Date(1466899200000)},endDate:null}).count())
$
$ mongo localhost:27017/ycsb query.js
MongoDB shell version: 2.6.9
connecting to: localhost:27017/ycsb
10
 
 
 
 

If you want to see the records instead of count, simply removing the count from the js will not work.

However modifying the js in the following way will bring you the desired result.

$ cat query.js
var cursor = db.mydoc.find({ sme : { $in : [“DUMMY-DATA1″,”DUMMY-DATA2”,
1″,”DUMMY-DATA2″]},startDate:{$lte:new Date(1466899200000)},endDate:null});
while(cursor.hasNext()){
    printjosn(cursor.next());
}
$
$ mongo localhost:27017/ycsb query.js
MongoDB shell version: 2.6.9
connecting to: localhost:27017/ycsb
{ “_id” : ObjectId(“577b55db043f738eca522167”), “sme” : “DUMMY-DATA1” }
{ “_id” : ObjectId(“577b55ee48c1f38e0ed9d0bb”), “sme” : “DUMMY-DATA2” }

Additionally you could also first open the mongo shell and then load the .js afterwards. Please refer to load() to get more details on this.

 

  • Ask Question