Guest User

Untitled

a guest
Oct 1st, 2016
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. {
  2. "_id" : ObjectId(someId),
  3. sourceId: someId,
  4. "objArr" : [
  5. {
  6. "fieldA" : someValue,
  7. "fieldB" : someValue
  8. },
  9. {
  10. "fieldA" : someValue,
  11. "fieldB" : someValue
  12. },
  13. ...etc
  14. ]
  15. }
  16.  
  17. db.coll.find(
  18. {
  19. "sourceId": sourceId,
  20. "objArr": {
  21. "$elemMatch": {
  22. "fieldA": { "$lte": 3 },
  23. "fieldB": { "$gte": 5 }
  24. }
  25. }
  26. },
  27. { "$objArr.$": 1 }
  28. )
  29.  
  30. db.coll.aggregate([
  31. { "$match": { "sourceId": sourceId } },
  32. { "$project": {
  33. "objArr": {
  34. "$filter": {
  35. "input": "$objArr",
  36. "in": "ob",
  37. "cond": {
  38. "$and": [
  39. { "$lte": [ "$$obj.fieldA", 3 ] },
  40. { "$gte": [ "$$obj.fieldB", 5 ] },
  41. ]
  42. }
  43. }
  44. }
  45. }}
  46. ])
  47.  
  48. db.collect.aggregate([
  49. { "$match": { "sourceId": sourceId } },
  50. { "$project": {
  51. "objArr": {
  52. "$setDifference": [
  53. { "$map": {
  54. "input": "$objArr",
  55. "as": "obj",
  56. "in": {
  57. "$cond": [
  58. { "$and": [
  59. { "$lte": [ "$$obj.fieldA", 3 ] },
  60. { "$gte": [ "$$obj.fieldB", 5 ] },
  61. },
  62. "$$obj",
  63. false
  64. ]
  65. }
  66. },
  67. [ false ]
  68. ]
  69. }
  70. }}
  71. ])
  72.  
  73. db.table.aggregate([
  74. {$match:{_id:1}},
  75. {$unwind:"$coll"},
  76. {$match:{"coll.fieldA":{$gt:10},"coll.fieldB":{$lt:20}}},
  77. {$project:{"fieldA":"$coll.fieldA","fieldB":"$coll.fieldB"}}
  78. ])
Add Comment
Please, Sign In to add comment