Guest User

Untitled

a guest
Oct 28th, 2018
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.80 KB | None | 0 0
  1. users.aggregate({
  2. $match:{
  3. search:/f/
  4. }},{
  5. $lookup:
  6. {from:"users", let:{user:"$_id"}, pipeline:[{
  7. $match:{
  8. $expr:{
  9. $and:[{
  10. $in:["$$user", "$friend.id"]},{
  11. $eq:["$_id", ObjectId("5bd22f28f77cfb1f6ce503ca")]
  12. }]
  13. }
  14. }
  15. },
  16. {$limit:1},
  17. {$project:{email:0, password:0}}
  18. ], as:"is_friend"}},{
  19. $project:{name:1, search:1, desc:1, color:1, profil:1, banner:1, date:1, friend:1, is_friend:{
  20. $cond:{
  21. if:{
  22. $eq:[{$arrayElemAt:["$is_friend",0]}, undefined]
  23. },
  24. then: "false",
  25. else:"true"
  26. }
  27. }
  28. }
  29. })
  30.  
  31. {
  32. "_id" : ObjectId("5bd22f28f77cfb1f6ce503ca"),
  33. "search" : "flarize",
  34. "name" : "flarize",
  35. "email" : "flarize.73@gmail.com",
  36. "password" : "$2a$10$eYeOtEkEUyD7TFkjKvhZOuSSpvBolkL17TrPHuoHhOT8JrsQR0UKW",
  37. "color" : 0,
  38. "profil" : "",
  39. "banner" : "",
  40. "desc" : "",
  41. "date" : 1540501286109,
  42. "friend" : [
  43. {
  44. "id" : ObjectId("5bd19a92da24674fdabd26b6"),
  45. "date" : 1540676931288
  46. },
  47. {
  48. "id" : ObjectId("5bd22f28f77cfb1f6ce503ca"),
  49. "date" : 1540676931288
  50. }
  51. ]
  52. }
  53.  
  54. {
  55. "_id" : ObjectId("5bd22f28f77cfb1f6ce503ca"),
  56. "search" : "flarize",
  57. "name" : "flarize",
  58. "color" : 0,
  59. "profil" : "",
  60. "banner" : "",
  61. "desc" : "",
  62. "date" : 1540501286109,
  63. "friend" : [
  64. {
  65. "id" : ObjectId("5bd19a92da24674fdabd26b6"),
  66. "date" : 1540666689579
  67. },
  68. {
  69. "id" : ObjectId("5bd22f28f77cfb1f6ce503ca"),
  70. "date" : 1540666689579
  71. }
  72. ],
  73. "is_friends" : "true"
  74. }
  75.  
  76. {
  77. "_id" : ObjectId("5bd22f28f77cfb1f6ce503ca"),
  78. "search" : "flarize",
  79. "name" : "flarize",
  80. "color" : 0,
  81. "profil" : "",
  82. "banner" : "",
  83. "desc" : "",
  84. "date" : 1540501286109,
  85. "friend" : [
  86. {
  87. "id" : ObjectId("5bd19a92da24674fdabd26b6"),
  88. "date" : 1540666689579
  89. },
  90. {
  91. "id" : ObjectId("5bd22f28f77cfb1f6ce503ca"),
  92. "date" : 1540666689579
  93. }
  94. ],
  95. is_friend : {
  96. "_id" : ObjectId("5bd22f28f77cfb1f6ce503ca"),
  97. "search" : "flarize",
  98. "name" : "flarize",
  99. "color" : 0,
  100. "profil" : "",
  101. "banner" : "",
  102. "desc" : "",
  103. "date" : 1540501286109,
  104. "friend" : [
  105. {
  106. "id" : ObjectId("5bd19a92da24674fdabd26b6"),
  107. "date" : 1540676931288
  108. },
  109. {
  110. "id" : ObjectId("5bd22f28f77cfb1f6ce503ca"),
  111. "date" : 1540676931288
  112. }
  113. ]
  114. }
  115. }
  116.  
  117. users.aggregate({
  118. $match:{
  119. search:new RegExp(req.body.search, 'i')
  120. }},{
  121. $lookup:
  122. {from:"users", let:{user:"$_id"}, pipeline:[{
  123. $match:{
  124. $expr:{
  125. $and:[{
  126. $in:["$$user", "$friend.id"]},{
  127. $eq:["$_id", new ObjectId(decoded["_id"])]
  128. }]
  129. }
  130. }
  131. },
  132. {$limit:1},
  133. {$project:{email:0, password:0}}
  134. ], as:"is_friend"}},{
  135. $project:{name:1, search:1, desc:1, color:1, profil:1, banner:1, date:1, friend:1, is_friend:{
  136. $cond:{
  137. if:{
  138. $eq:[{$arrayElemAt:["$is_friend",0]}, undefined]
  139. },
  140. then: "false",
  141. else:"true"
  142. }
  143. }
  144. }
  145. })
Add Comment
Please, Sign In to add comment