Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- "_id" : ObjectId(someId),
- sourceId: someId,
- "objArr" : [
- {
- "fieldA" : someValue,
- "fieldB" : someValue
- },
- {
- "fieldA" : someValue,
- "fieldB" : someValue
- },
- ...etc
- ]
- }
- db.coll.find(
- {
- "sourceId": sourceId,
- "objArr": {
- "$elemMatch": {
- "fieldA": { "$lte": 3 },
- "fieldB": { "$gte": 5 }
- }
- }
- },
- { "$objArr.$": 1 }
- )
- db.coll.aggregate([
- { "$match": { "sourceId": sourceId } },
- { "$project": {
- "objArr": {
- "$filter": {
- "input": "$objArr",
- "in": "ob",
- "cond": {
- "$and": [
- { "$lte": [ "$$obj.fieldA", 3 ] },
- { "$gte": [ "$$obj.fieldB", 5 ] },
- ]
- }
- }
- }
- }}
- ])
- db.collect.aggregate([
- { "$match": { "sourceId": sourceId } },
- { "$project": {
- "objArr": {
- "$setDifference": [
- { "$map": {
- "input": "$objArr",
- "as": "obj",
- "in": {
- "$cond": [
- { "$and": [
- { "$lte": [ "$$obj.fieldA", 3 ] },
- { "$gte": [ "$$obj.fieldB", 5 ] },
- },
- "$$obj",
- false
- ]
- }
- },
- [ false ]
- ]
- }
- }}
- ])
- db.table.aggregate([
- {$match:{_id:1}},
- {$unwind:"$coll"},
- {$match:{"coll.fieldA":{$gt:10},"coll.fieldB":{$lt:20}}},
- {$project:{"fieldA":"$coll.fieldA","fieldB":"$coll.fieldB"}}
- ])
Add Comment
Please, Sign In to add comment