I got the following piece of code:
from pymongo import MongoClient
client = MongoClient('ipOfServer')
db = client.admin
db.authenticate('login', 'password',
source='admin_')
heh = list(db.events.aggregate(
[
{"$match": {"status": 'start'}},
{"$group": {"_id": "$eventName", "players": {"$addToSet": "$uid"}}},
{"$project": {"_id": 1, "Count": {"$size": "$players"}}}
]))
print(heh)
and this is worked for the original programmer who wrote and tested it code result while testing. But when I try to run it I'm getting this error:
pymongo.errors.OperationFailure: exception: invalid operator '$size'
I'm using mongo version 2.4.14 and python 2.7.12 with the sublime text editor. Could anyone suggest ways to solve this problem, it would be appreciated.
The reason is because the
$size
array aggregation operator is new in MongoDB 2.6 and you are actually running MongoDB 2.4.I suggest you upgrade your MongoDB server to at least 3.0. But if for some reason you don't want to upgrade now, you will need to
$unwind
the "players" array and$group
by "_id" then return the count using the$sum
accumulator operator.