Joe
Joe

Reputation: 47659

Performance of repeatedly executing the same javascript on MongoDb?

I'm looking at using some JavaScript in a MongoDb query. I have a couple of choices:

I plan to use the JavaScript in a regularly used query that's executed as part of a request to a site or API (i.e. not a batch administrative jobs) so it's important that the query executes with reasonable speed.

I'm looking at a 30ish line function.

Is the Javascript interpreted fresh each time? Will the performance be ok? Is it a sensible basis upon which to build queries?

Upvotes: 2

Views: 244

Answers (2)

Gates VP
Gates VP

Reputation: 45297

Is the Javascript interpreted fresh each time?

Pretty much. MongoDB only has one "javascript instance" per running instance of MongoDB. You'll notice this if you try to run two different Map/Reduces at the same time.

Will the performance be ok?

Obviously, there are different definitions of "OK" here. The $where clause can not use indexes. You can combine that clause with another indexed query. In either case each object will need to be pushed from BSON over to the Javascript run-time and then acted on inside the run-time.

The process is definitely not what you would call "performant". Of course, by that measure Map/Reduce is also not very performant and people use that on production systems.

Is it a sensible basis upon which to build queries?

The real barrier here isn't the number of lines in the code, it's the number of possible documents this code will interpret. Even though it's "server-side" javascript, it's still a bunch of work that the server has to do. (in one thread, in an interpreted environment)

If you can test it and scope it correctly, it may well work out. Just don't expect miracles.

Upvotes: 1

user2665694
user2665694

Reputation:

What is your point here? Write a JS script and call it regularly through cron. What should be the problem with that?

Upvotes: 0

Related Questions