MongoDB基本操作

Mongo自带shell客户端:

$ mongo > show dbs show database names > db 查看当前数据库的名称 > show collections 显示当前数据库的所有集合 > use foolbar 切换到foolbar数据库,如果foolbar数据库不存在,会在该数据第一次插入之后创建 > show collections; 显示当前数据库中有哪些集合,起初为空 >db.blog.insert({"title1":"instrduce of mongo"}); WriteResult({ "nInserted" : 1 }) 第一次插入数据会创建数据库(集合) 插入的数据是一个文档 > db.blog.find() { "_id" : ObjectId("5503ecd83853a67e204962ae"), "title1" : "instrduce of mongo" } 查找当前数据库中blog集合的所有文档 > db.blog.insert({"docment":"hello mongoDB!"}); WriteResult({ "nInserted" : 1 }) > db.blog.find() { "_id" : ObjectId("5503ecd83853a67e204962ae"), "title1" : "instrduce of mongo" } { "_id" : ObjectId("5503ed873853a67e204962af"), "docment" : "hello mongoDB!" } > db.blog.insert({"title" : "mytest", "name" : "pc"}); WriteResult({ "nInserted" : 1 }) > db.blog.insert({"title" : "mytest", "name" : "pc"}); WriteResult({ "nInserted" : 1 }) > db.blog.insert({"name" : "xwp"}); WriteResult({ "nInserted" : 1 }) > db.blog.insert({"name" : "xwp"}); WriteResult({ "nInserted" : 1 }) > db.blog.find() { "_id" : ObjectId("550247c18976c0e0b467e800"), "title" : "mytest", "name" : "pc" } { "_id" : ObjectId("550248468976c0e0b467e801"), "name" : "xwp" } { "_id" : ObjectId("5503ecd83853a67e204962ae"), "title1" : "instrduce of mongo" } { "_id" : ObjectId("5503ed873853a67e204962af"), "docment" : "hello mongoDB!" } { "_id" : ObjectId("5503edee3853a67e204962b0"), "title" : "mytest", "name" : "pc" } { "_id" : ObjectId("5503ee013853a67e204962b1"), "name" : "xwp" } > db.blog.remove({_id : ObjectId("550247c18976c0e0b467e800")}); WriteResult({ "nRemoved" : 1 }) 从当前数据库中的blog集合中移除_id为ObjectId("550247c18976c0e0b467e800")的文档 > db.blog.find() { "_id" : ObjectId("550248468976c0e0b467e801"), "name" : "xwp" } { "_id" : ObjectId("5503ecd83853a67e204962ae"), "title1" : "instrduce of mongo" } { "_id" : ObjectId("5503ed873853a67e204962af"), "docment" : "hello mongoDB!" } { "_id" : ObjectId("5503edee3853a67e204962b0"), "title" : "mytest", "name" : "pc" } { "_id" : ObjectId("5503ee013853a67e204962b1"), "name" : "xwp" } > show collections; blog > db.createCollection("xunlei"); { "ok" : 1 } 在当前数据库创建一个指定名称的集合 > show collections; blog xunlei >db.blog.findOne() { "_id" : ObjectId("550248468976c0e0b467e801"), "name" : "xwp" } 这个shell函数findOne会返回一个文档 而find函数会返回最多二十个文档.更多区别我们在后面详细介绍. >db.blog.count() 5 统计集合blog所有文档数量 ctrl+c退出mongo客户端

以上为【考点】

文档

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

如:

{"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(空字符),这个字符用来标识键的结尾

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

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