mongodb(一):基本操作及查、插、更新、删初步
1. 启动和关闭 启动: # mongod --dbpath /data/mongodb/db/ --logpath/data/mongodb/logs/mongodb.log --fork & 关闭 # pkill mongod 2. Mongo客户端(命令行模式) # mongo MongoDB shellversion: 1.6.4 connectingto: test > help db.help() help on db methods db.mycoll.help() help on collection methods rs.help() help on replica set methods help connect connecting to a db help help admin administrative help help misc misc things to know show dbs show database names show collections show collections in currentdatabase show users show users in current database show profile show most recentsystem.profile entries with time >= 1ms use <db_name> set current database db.foo.find() list objects in collection foo db.foo.find( { a : 1 } ) list objects in foo where a == 1 it result of the lastline evaluated; use to further iterate exit quit the mongo shell > 有不知道的就.help() 3. 概念 由文档、集合、数据库组成; 文档和oracle中表的记录类似不过能存(json之类的); 集合像关系数据库中的表 等,不过这里存的东西不一定是有关系的,相当于容器,里面可以容纳不同类型文档,和集合子集; 数据库和mysql一样的概念,一个mongodb中可以创建多个数据库; 存储在MongoDB集合中的每个文档(document)都有一个默认的主键_id,这个主键名称是固定的,它可以是MongoDB支持的任何数据类型,默认是ObjectId; 4. 创建、删除、更新文档(初步) > use test(如果没有则创建test数据库) switchedto db test 插入: > db.blog.insert({"title":"My BlogPost","content":"Here's my blogpost","date":new Date()})这里的blog是集合,当插入一些文件 MongoDB 自动创建的集合。 > db.blog.findOne() { "_id" :ObjectId("53f6cf3b055af3f7b9413917"), "title" : "My Blog Post", "content" : "Here's my blogpost", "date" : "Fri Aug 22 201413:03:55 GMT+0800 (CST)" } >db.blog.insert({"title":"XiaoMing BlogPost","content":"XiaoMing's blog post","date":new Date()}) 查找: > db.blog.find() {"_id" : ObjectId("53f6cf3b055af3f7b9413917"),"title" : "My Blog Post", "content" :"Here's my blog post", "date" : "Fri Aug 22 201413:03:55 GMT+0800 (CST)" } {"_id" : ObjectId("53f6cfac055af3f7b9413918"),"title" : "XiaoMing Blog Post", "content" :"XiaoMing'sblog post","date" : "Fri Aug 22 2014 13:05:48 GMT+0800 (CST)" } 插入: > recode=db.blog.findOne({"title" : "XiaoMingBlog Post"}) { "_id" :ObjectId("53f6d154055af3f7b9413919"), "title" : "XiaoMing BlogPost", "content" : "XiaoMing'sblog post", "date" : "Fri Aug 22 201413:12:52 GMT+0800 (CST)" } > recode.content="How do you do" How do you do > db.blog.update({"title" : "XiaoMing BlogPost"},recode) > db.blog.find() {"_id" : ObjectId("53f6cf3b055af3f7b9413917"),"title" : "My Blog Post", "content" : "Here'smy blog post", "date" : "Fri Aug 22 2014 13:03:55 GMT+0800(CST)" } {"_id" : ObjectId("53f6d154055af3f7b9413919"),"title" : "XiaoMing Blog Post", "content" :"How do you do", "date" : "Fri Aug 22 2014 13:12:52GMT+0800 (CST)" } 删除: > db.blog.remove({"title" : "XiaoMing BlogPost"}) > db.blog.find() {"_id" : ObjectId("53f6cf3b055af3f7b9413917"),"title" : "My Blog Post", "content" :"Here's my blog post", "date" : "Fri Aug 22 201413:03:55 GMT+0800 (CST)" } 要删除集合使用,db.COLLECTION_NAME drop(“集合名”) 要删除数据库先use 要删除的数据库名,在执行db.dropDatabase() 5. 数据类型(参考MongoDB权威指南) 基本数据类型 MongoDB的文件存储格式为BSON,同JSON一样支持往其它文档对象和数组中再插入文档对象和数组,同时扩展了JSON的数据类型.与数据库打交道的那些应用。例如,JSON没有日期类型,这会使得处理本来简单的日期问题变得非常繁琐。只有一种数字类型,没法区分浮点数和整数,更不能区分32位和64位数字。也没有办法表示其他常用类型,如正则表达式或函数。下面是MongoDB的支持的数据类型 null null用于表示空值或者不存在的字段。 {"x":null} 布尔 布尔类型有两个值'true'和'false1'.{"X":true} 32位整数类型不可用。JavaScript仅支持64位浮点数,所以32位整数会被自动转换。 64位整数不支持这个类型。shell会使用一个特殊的内嵌文档来显示64位整数, 64位浮点数 shell中的数字都是这种类型。下面的表示都是浮点数: {"X" : 3.1415926} {"X" : 3} 字符串 UTF-8字符串都可表示为字符串类型的数据: {"x" : "foobar"} 符号不支持这种类型。shell将数据库里的符号类型转换成字符串。 对象id对象id是文档的12字节的唯一 ID, {"X" :ObjectId() } 日期日期类型存储的是从标准纪元开始的毫秒数。不存储时区: {"X" : new Date()} 正则表达式文档中可以包含正则表达式,采用JavaScript的正则表达式语法:{"x" : /foobar/i} 代码文档中还可以包含JavaScript代码:{"x" : function() { /* …… */ }} 二进制数据二进制数据可以由任意字节的串组成。不过shell中无法使用。 最大值BSON包括一个特殊类型,表示可能的最大值。shell中没有这个类型。 最小值BSON包括一个特殊类型,表示可能的最小值。shell中没有这个类型。 未定义文档中也可以使用未定义类型:{"x":undefined} 数组值的集合或者列表可以表示成数组:{"x" : ["a", "b", "c"]} 内嵌文档文档可以包含别的文档,也可以作为值嵌入到父文档中,数据可以组织得更自然些,不用非得存成扁平结构的:{"x" : {"food" : "noodle"}} 数字 JavaScript中只有一种“数字”类型。因为MongoDB中有3种数字类型(32位整数、64位整数和64位浮点数),shell必须绕过JavaScript的限制。默认情况下,shell中的数字都被MongoDB当做是双精度数。这意味着如果你从数据库中获得的是一个32位整数,修改文档后,将文档存回数据库的时候,这个整数也被转换成了浮点数,即便保持这个整数原封不动也会这样的。所以明智的做法是尽量不要在shell下覆盖整个文档。 日期 JavaScript的Date对象用做MongoDB的日期类型,创建一个新的Date对象时,通常会调用new Data("")。
页:
[1]