Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.54 KB | None | 0 0
  1. db.createCollection("Company1",
  2. {"validator":{
  3. $and:[{"_id":{$type:"string"}},
  4. {"Company.cname":{$type:"string"}},
  5. {"Company.city":{$type:"string"}},
  6. {"Company.street":{$type:"string"}},
  7. {"Company.bldg":{$type:"int"}},
  8. {"Company.bldg":{$gt:0}},
  9. {"Company.bldg":{$lt:500}},
  10. {"Company.budget":{$type:"double"}},
  11. {"Company.budget":{$gt:0}},
  12. {"Company.dname"{$type:"string"}},
  13. {"Company.cname":{$exists:true}},
  14. {"Company.city":{$exists:true}},
  15. {"Company.street":{$exists:true}},
  16. {"Company.bldg":{$exists:true}},
  17. {"Company.budget":{$exists:false}},
  18. {"Company.dname":{$exists:true}},
  19. {"Company.Department.floor":{$type:int}},
  20. {"Company.Department.enumber":{$type:int}},
  21. {"Company.Department.floor":{$exists:true}},
  22. {"Company.Department.enumber":{$exists:true}},
  23. {"Company.Department.Employee.first_name":{$type:string}},
  24. {"Company.Department.Employee.last_name":{$type:string}},
  25. {"Company.Department.Employee.date_of_birth":{$type:string}},
  26. {$or:[ {"Company.Department.Employee.position":{$type:string}},
  27. {"Company.Department.Employee.position":{$exists:true}}]},
  28. {"Company.Department.Employee.salary":{$type:double}},
  29. {"Company.Department.Employee.salary":{$gt:0}},
  30. {"Company.Department.Employee.first_name":{$exists:true}},
  31. {"Company.Department.Employee.last_name":{$exists:true}},
  32. {"Company.Department.Employee.date_of_birth":{$exists:true}},
  33. {"Company.Department.Employee.salary":{$exists:true}}
  34. ]}}
  35. );
  36.  
  37.  
  38. // passes validation
  39. db.xxxx.insert({"_id":"Big Business",
  40. "Company":{"cname":"Big Business",
  41. "city":"Sydney",
  42. "street":"123 fake st",
  43. "bldg":NumberInt(200),
  44. "budget":"500"
  45. "Departments":[{"dname":"Sales",
  46. "floor":NumberInt(2),
  47. "Employees":[{"enumber":01,
  48. "first_name":"James",
  49. "last_name":"Smith",
  50. "date_of_birth":"20/01/1990",
  51. "Positon":"Manager",
  52. "salary":10000
  53. }]
  54. }]
  55. }
  56.  
  57. });
  58.  
  59. //fails
  60. db.xxxx.insert({"_id":"Big Business",
  61. "Company":{"cname":"Big Business",
  62. "city":"Sydney",
  63. "street":"153 fake st",
  64. "bldg":NumberInt(600),
  65. "budget":"200"
  66. "Departments":[{"dname":"Marketing",
  67. "floor":NumberInt(2),
  68. "Employees":[{"enumber":02,
  69. "first_name":"Max",
  70. "last_name":"Payne",
  71. "date_of_birth":"25/03/1987",
  72. "Positon":"Manager",
  73. "salary":170000
  74. }]
  75. }]
  76. }
  77.  
  78. });
  79. ====================================================================================================================================
  80. db.createCollection("Company2",{"validator":
  81. {$jsonschema:
  82. {"bsonType":"object",
  83. "properties":{"_id":{"bsonType":"string"},
  84. "Company":{"$bsonType":"object",
  85. "description":"Company data",
  86. "required":["cname","city","street","bldg","budget"],
  87. "properties":{"cname":{"bsonType":"string"},
  88. "city":{"bsonType":"string"},
  89. "street":{"bsonType":"string"},
  90. "bldg":{"bsonType":"int"},
  91. "minimum":1,
  92. "maximum":499,
  93. "budget":{"bsonType":"double"},
  94. "minimum":1,
  95. "Department":{"bsonType":"array",
  96. "depts":{"bsonType":"object",
  97. "required":["dname","floor","enumber"],
  98. "properties":{"dname":{"bsonType":"string"},
  99. "floor":{"bsonType":"int"},
  100. "Employee":{"bsonType":"array"},
  101. "emps":{"bsonType":"object",
  102. "required":["enumber","first_name","last_name","date_of_birth","salary"],
  103. "properties":{"enumber":{"bsonType":"int"},
  104. "first_name":{"bsonType":"string"},
  105. "last_name":{"bsonType":"string"},
  106. "date_of_birth":{"bsonType":"string"},
  107. "positon":{"bsonType":"string"},
  108. "salary":{"bsonType":"double"},
  109. "minimum":1,
  110. }
  111. }
  112. }
  113. }
  114. }
  115. }
  116. }
  117. }
  118. }}});
  119.  
  120. // passes validation
  121. db.xxxx.insert({"_id":"Big Business",
  122. "Company":{"cname":"Big Business",
  123. "city":"Sydney",
  124. "street":"123 fake st",
  125. "bldg":NumberInt(200),
  126. "budget":"500"
  127. "Departments":[{"dname":"Sales",
  128. "floor":NumberInt(2),
  129. "Employees":[{"enumber":01,
  130. "first_name":"James",
  131. "last_name":"Smith",
  132. "date_of_birth":"20/01/1990",
  133. "Positon":"Manager",
  134. "salary":10000
  135. }]
  136. }]
  137. }
  138.  
  139. });
  140.  
  141. //fails
  142. db.xxxx.insert({"_id":"Big Business",
  143. "Company":{"cname":"Big Business",
  144. "city":"Sydney",
  145. "street":"153 fake st",
  146. "bldg":NumberInt(600),
  147. "budget":"200"
  148. "Departments":[{"dname":"Marketing",
  149. "floor":NumberInt(2),
  150. "Employees":[{"enumber":02,
  151. "first_name":"Max",
  152. "last_name":"Payne",
  153. "date_of_birth":"25/03/1987",
  154. "Positon":"Manager",
  155. "salary":170000
  156. }]
  157. }]
  158. }
  159.  
  160. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement