MongoDB基本操作

Mongo自带shell客户端:

  1. $ mongo
  2. > show dbs show database names
  3. > db
  4. 查看当前数据库的名称
  5. > show collections
  6. 显示当前数据库的所有集合
  7. > use foolbar
  8. 切换到foolbar数据库,如果foolbar数据库不存在,会在该数据第一次插入之后创建
  9. > show collections;
  10. 显示当前数据库中有哪些集合,起初为空
  11. >db.blog.insert({"title1":"instrduce of mongo"});
  12. WriteResult({ "nInserted" : 1 })
  13. 第一次插入数据会创建数据库(集合) 插入的数据是一个文档
  14. > db.blog.find()
  15. { "_id" : ObjectId("5503ecd83853a67e204962ae"), "title1" : "instrduce of mongo" }
  16. 查找当前数据库中blog集合的所有文档
  17. > db.blog.insert({"docment":"hello mongoDB!"});
  18. WriteResult({ "nInserted" : 1 })
  19. > db.blog.find()
  20. { "_id" : ObjectId("5503ecd83853a67e204962ae"), "title1" : "instrduce of mongo" }
  21. { "_id" : ObjectId("5503ed873853a67e204962af"), "docment" : "hello mongoDB!" }
  22. > db.blog.insert({"title" : "mytest", "name" : "pc"});
  23. WriteResult({ "nInserted" : 1 })
  24. > db.blog.insert({"title" : "mytest", "name" : "pc"});
  25. WriteResult({ "nInserted" : 1 })
  26. > db.blog.insert({"name" : "xwp"});
  27. WriteResult({ "nInserted" : 1 })
  28. > db.blog.insert({"name" : "xwp"});
  29. WriteResult({ "nInserted" : 1 })
  30. > db.blog.find()
  31. { "_id" : ObjectId("550247c18976c0e0b467e800"), "title" : "mytest", "name" : "pc" }
  32. { "_id" : ObjectId("550248468976c0e0b467e801"), "name" : "xwp" }
  33. { "_id" : ObjectId("5503ecd83853a67e204962ae"), "title1" : "instrduce of mongo" }
  34. { "_id" : ObjectId("5503ed873853a67e204962af"), "docment" : "hello mongoDB!" }
  35. { "_id" : ObjectId("5503edee3853a67e204962b0"), "title" : "mytest", "name" : "pc" }
  36. { "_id" : ObjectId("5503ee013853a67e204962b1"), "name" : "xwp" }
  37. > db.blog.remove({_id : ObjectId("550247c18976c0e0b467e800")});
  38. WriteResult({ "nRemoved" : 1 })
  39. 从当前数据库中的blog集合中移除_idObjectId("550247c18976c0e0b467e800")的文档
  40. > db.blog.find()
  41. { "_id" : ObjectId("550248468976c0e0b467e801"), "name" : "xwp" }
  42. { "_id" : ObjectId("5503ecd83853a67e204962ae"), "title1" : "instrduce of mongo" }
  43. { "_id" : ObjectId("5503ed873853a67e204962af"), "docment" : "hello mongoDB!" }
  44. { "_id" : ObjectId("5503edee3853a67e204962b0"), "title" : "mytest", "name" : "pc" }
  45. { "_id" : ObjectId("5503ee013853a67e204962b1"), "name" : "xwp" }
  46. > show collections;
  47. blog
  48. > db.createCollection("xunlei");
  49. { "ok" : 1 }
  50. 在当前数据库创建一个指定名称的集合
  51. > show collections;
  52. blog
  53. xunlei
  54. >db.blog.findOne()
  55. { "_id" : ObjectId("550248468976c0e0b467e801"), "name" : "xwp" }
  56. 这个shell函数findOne会返回一个文档 find函数会返回最多二十个文档.更多区别我们在后面详细介绍.
  57. >db.blog.count()
  58. 5
  59. 统计集合blog所有文档数量
  60. ctrl+c退出mongo客户端

以上为【考点】

文档

文档是一个键值(key-value)对(即BSON,基于JSON格式,一个扩展格式)。

如:

  1. {"site":"www.itcast.com", "name":"传智播客"}

注意事项:

  • 文档中的键/值对是有序的。

{ "_id" : ObjectId("57d77c7774b8b0c4a926251c"), "site" : "www.itcast.com", "name" : "传智播客" }

{ "_id" : ObjectId("57d77c9074b8b0c4a926251d"), "name1" : "www.itcast.com", "site1" : "传智播客" }

  • 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。

{ "_id" : ObjectId("57d77cb774b8b0c4a926251e"), "name1" : "www.itcast.com", "site1" : 12 }

{ "_id" : ObjectId("57d77ce474b8b0c4a9262520"), "site1" : { "pro" : "hebei" } }

  • MongoDB区分类型和大小写。

{ "_id" : ObjectId("57d77cb774b8b0c4a926251e"), "Site1" : "www.itcast.com", "site1" : 12 }

  • MongoDB的文档不能有重复的键。

db.itcast.insert({"site1":"www.itcast.com", "site1":{'pro':'hebei'}})

  • 文档的键是用双引号标识的字符串(常见的);除个别例外外,可用任务UTF-8字符。要求如下:

键不能含有\0(空字符),这个字符用来标识键的结尾

.和$被保留,存在特别含义,最好不要用来命名键名

"_"开头的键是保留的,建议不要使用。