see https://docs.mongodb.org/manual/meta/aggregation-quick-reference/#aggregation-expressions
Arithmetic Expressions -> OK -> OK
| Mongo | Pandas |
|---|---|
| $and | np.logical_and |
| $or | np.logical_or |
| $not | np.logical_not |
| $cmp | combine of np.logical_not / == / < |
| $eq/$gt/$gte/$lte | Series.eq/gt/lte/gte |
| $add/$div/.. | Series.add |
| $concat | Series.str.cat |
| $lower | Series.str.lower |
| other string op |
row level operation
{ $project : { title : 1 , grade2 : {"$gt" : ["$grade", 1]}}}
df = df[:, ['title', 'grade']]
df['grade2'] = df['grade'] > 1
{ $project :
{ title : 1,
isAdultMale : {
$and : [{"$gt" : ["$age", "$age2"]}, {$eq : ["$sex" : "M"]}]
}
}
}
s = df[:, ['title', 'age', 'sex']]
s['isAdultMale'] = np.logical_and((s['age'] > s['age2']), (s['sex'] == "M"))
del s['age']
del s['sex']
if condition