/Mongodb/mongodb-core-document.java

https://github.com/KevinBlandy/notes · Java · 140 lines · 107 code · 33 blank · 0 comment · 0 complexity · 3b01c3e414e1d05ffbe40f11697d7788 MD5 · raw file

  1. -------------------------
  2. document
  3. -------------------------
  4. # Êý¾ÝÀàÐÍ
  5. * mongoÖеÄÊý×Ö, ĬÈÏÊÇ double Êý¾ÝÀàÐÍ, Èç¹ûÐèÒª´æ´¢ÕûÐÎ, ±ØÐëʹÓú¯Êý NumberInt(val)
  6. db.user.insert({name: "n3", age: NumberInt(27)});
  7. * ²åÈ뵱ǰÈÕÆÚʹÓÃ: new Date();
  8. * Èç¹û×Ö¶ÎΪ null, ²»Ó¦¸ÃÉùÃ÷
  9. -------------------------
  10. document - id
  11. -------------------------
  12. # ÔÚ¼¯ºÏÖвåÈëÎĵµÊ±£¬Èç¹ûûÓÐÔÚ×Ö¶ÎÃû³ÆÖÐÌí¼Ó´øÓÐ_idµÄ×Ö¶ÎÃû³Æ£¬ÔòMongoDB½«×Ô¶¯Ìí¼ÓÒ»¸öObject id×Ö¶Î
  13. {"_id": ObjectId("xxxxxxxxx")}
  14. -------------------------
  15. document - »ù±¾ÃüÁî
  16. -------------------------
  17. db.[collection].insert([document], [config]);
  18. * ÍùÖ¸¨µÄcollection²åÈëÒ»¸ö»òÕ߶à¸ö(²ÎÊýÓÃÊý×é)document
  19. * Èç¹û collection ²»´æÔÚ, »á´´½¨
  20. * Ö´Ðгɹ¦ºó·µ»Ø²åÈë³É¹¦µÄÎĵµÊýÁ¿
  21. WriteResult({"nInserted": 1});
  22. * config
  23. {
  24. writeConcern: <document>
  25. * ¿ÉÑ¡£¬Å׳öÒì³£µÄ¼±ð¡£
  26. ordered: true
  27. * ĬÈÏΪ true, °´ÕÕ˳Ðò²åÈëÎĵµ, Èç¹ûÆäÖÐÈκÎÒ»¸öÒì³£, ÔòÁ¢¼´·µ»Ø, Ê£ÓàµÄÎĵµ²»»á´¦Àí
  28. * Èç¹ûΪ false, Èç¹û²åÈëÎĵµÒì³£, Ìø¹ý²»»á·µ»Ø, ¼ÌÐø´¦ÀíºóÃæµÄÎĵµ
  29. }
  30. db.[collection].remove([condition], [config]);
  31. * ¸ù¾ÝÌõ¼þÒƳýÊý¾Ý
  32. * Èç¹ûûÓÐÌõ¼þ, ÔòÒƳýËùÓÐÊý¾Ý
  33. * config
  34. {
  35. justOne: false,
  36. * Èç¹ûÉèΪ true »ò 1£¬Ôòֻɾ³ýÒ»¸öÎĵµ
  37. * Èç¹û²»ÉèÖøòÎÊý£¬»òʹÓÃĬÈÏÖµ false£¬Ôòɾ³ýËùÓÐÆ¥ÅäÌõ¼þµÄÎĵµ¡£
  38. writeConcern: <document>
  39. * ¿ÉÑ¡£¬Å׳öÒì³£µÄ¼±ð¡£
  40. }
  41. -------------------------
  42. document - ¸üÐÂ
  43. -------------------------
  44. db.[collection].update([condition], [update], [config]);
  45. * ¸ù¾Ý condition Ö´ÐÐ update ÐÞ¸ÄÒ»ÌõÎĵµ
  46. db.users.update({name: "KevinBlandy"}, {$set: {name: "new Name"}}); // UPDATE `users` SET `name` = 'new Name' WHERE `name` = 'KevinBlandy';
  47. * Èç¹û²»Ê¹Óà $Set, Ö¸ÁîÀ´ÔÖ¸¨µÄ×ֶνøÐÐÐÞ¸Ä, ÄÇô¾Í»á±ä³É¸²¸ÇÐÞ¸Ä, ʹÓÃÐÂÎĵµ³¹µ×¸²¸Ç¾ÉÎĵµ
  48. db.users.update({name: "KevinBlandy"}, {name: "ff"}); // °Ñname=KevinBlandyµÄÎĵµ£¬Ð޸ijÉÖ»ÓÐ name=ffµÄÎĵµ
  49. * config Ñ¡Ïî
  50. {
  51. upsert: true,
  52. * ¿ÉÑ¡£¬Èç¹û²»´æÔÚupdateµÄ¼Ç¼£¬ÊÇ·ñ²åÈëobjNew ,trueΪ²åÈ룬ĬÈÏÊÇfalse£¬²»²åÈë¡£
  53. multi: true,
  54. * ¿ÉÑ¡£¬Ä¬ÈÏÊÇfalse,Ö»¸üÐÂÕÒµ½µÄµÚÒ»Ìõ¼Ç¼£¬Èç¹ûÕâ¸ö²ÎÊýΪtrue,¾Í°Ñ°´Ìõ¼þ²é³öÀ´àÌõ¼Ç¼ȫ²¿¸üС£
  55. writeConcern: <document>
  56. * ¿ÉÑ¡£¬Å׳öÒì³£µÄ¼±ð¡£
  57. collation: <document>,
  58. arrayFilters: [<filder-document>],
  59. hint: <document|string>
  60. }
  61. db.[collection].save([document], [config]);
  62. * ¸²¸ÇÐÞ¸Ä, ͨ¹ý´«ÈëµÄÎĵµÀ´Ìæ»»ÒÑÓÐÎĵµ
  63. * config Ñ¡Ïî
  64. {
  65. writeConcern: <document>
  66. * ¿ÉÑ¡£¬Å׳öÒì³£µÄ¼±ð¡£
  67. }
  68. # ¸üÐÂÏà¹ØµÄÖ¸Áî
  69. $set
  70. * ÉèÖÃÖµ
  71. * Èç¹û $set µÄ×ֶβ»´æÔÚ, »áд´½¨
  72. $inc (Ô­×ÓÃüÁî)
  73. * ×ÔÔö×Ö¶ÎÖµ
  74. db.user.update({_id: ObjectId("5eba69c51e2bb3537a710e0b")}, {$inc: {age: 1}}); // ¶Ôage×ֶΠ+1
  75. $unset (Ô­×ÓÃüÁî)
  76. * Óû§É¾³ýÖ¸¨µÄ×Ö¶Î
  77. db.user.update({_id: ObjectId("5eba69c51e2bb3537a710e0b")}, {$unset: {age: 1}}) // ɾ³ýage×Ö¶Î
  78. $push
  79. * Ìí¼ÓÒ»¸öÔªËص½Êý×éβ²¿
  80. * Èç¹ûfield²»´æÔÚ£¬»á×Ô¶¯²åÈëÒ»¸öÊý×éÀàÐÍ
  81. db.user.update({_id: ObjectId("5eba69c51e2bb3537a710e0b")}, {$push: {skills: "ruby"}}) // Ìí¼Ó ruby µ½¶ÔÏóµÄ skills ¼¯ºÏÖÐ
  82. * ÔªËØ¿ÉÒÔÊÇÈÎÒâÊý¾ÝÀàÐÍ
  83. $pushAll
  84. * Ìí¼Ó¶à¸öÔÏóµ½Êý×éβ²¿
  85. * ²ÎÊýÊÇÒ»¸öÊý×é
  86. $pop
  87. * ´ÓÊý×éÖÐɾ³ýÔªËØ
  88. db.user.update({_id: ObjectId("5eba69c51e2bb3537a710e0b")}, {$pop: {skills: -1}}); // ɾ³ý skills ÖеĵÚÒ»¸öÖµ
  89. * ɾ³ýλÖõÄÖµ
  90. -1: µÚÒ»¸ö
  91. 1: ×îºóÒ»¸ö
  92. $pull (Ô­×ÓÃüÁî)
  93. * ´ÓÊý×éɾ³ýµÚÒ»¸öÆ¥Åäµ½µÄÖµ
  94. db.user.update({_id: ObjectId("5eba69c51e2bb3537a710e0b")}, {$pull: {skills: "java"}}); // ɾ³ý skills ÖÐµÄ java ÔªËØ
  95. $pullAll (Ô­×ÓÃüÁî)
  96. * ´ÓÊý×éɾ³ýà¸öÆ¥Åäµ½µÄÖµ
  97. db.user.update({_id: ObjectId("5eba69c51e2bb3537a710e0b")}, {$pull: {skills: ["java", "python"]}}); // ɾ³ý skills ÖÐµÄ java, python ÔªËØ
  98. $addToSet (Ô­×ÓÃüÁî)
  99. * ¼ÓÒ»¸öÖµµ½Êý×éÄÚ£¬øÇÒÖ»Óе±Õâ¸öÖµÔÚÊý×éÖв»´æÔÚʱ²ÅÔö¼Ó
  100. * Èç¹û²ÎÊýÊǶÔÏó, »òÕßÊý×é, ÄÇô»á½øÐÐÉî±È½Ï
  101. $rename (Ô­×ÓÃüÁî)
  102. * Ô×ֶνøÐÐÖØÃüÃû
  103. db.user.update({_id: ObjectId("5eba69c51e2bb3537a710e0b")}, {$pull: {skills: "_skills"}}); // °Ñ skills ÊôÐÔÐÞ¸ÄΪ _skills
  104. $bit (Ô­×ÓÃüÁî)
  105. * λ²Ù×÷£¬integerÀàÐÍ
  106. db.user.update({_id: ObjectId("5eba69c51e2bb3537a710e0b")}, {$bit: {val: {and: NumberInt(5)}}}); // UPDATE `val` SET `val` = (`val` and 5)
  107. * λÒƲÙ×÷:and,or,not.....