征服 Mongodb 之 CRUD 博客分类: DB/NoSQL
程序员文章站
2024-03-22 13:00:04
...
这段时间总难把精力投在调研工作上,眼下要放假了,回家的七七八八,没啥正事了,接着整理。
集群配置相关链接:
征服 Mongodb 之 安装与系统服务配置
征服 Mongodb 之 主从复制&集群复制
基本操作相关链接:
征服 Mongodb 之 常用命令、基本数据类型
征服 Mongodb 之 Modifier初识
征服 Mongodb 之 Modifier增强
征服 Mongodb 之 CRUD
Mongodb的安装、配置主从,以及有关基本数据类型,详见上一篇博客。
接下来我们做点最实用的部分——CRUD。
仔细翻阅了一下这本书,除了Insert、Find、Update和Remove
- Create——insert
> post = {"title":"My Blog Post", ... "content":"Here's my blog post.", ... "date":new Date()} { "title" : "My Blog Post", "content" : "Here's my blog post.", "date" : ISODate("2013-01-23T05:29:08.151Z") } > db.blog.insert(post)
- Read——find/findOne
文档读取,可以读全部文档,也可以读指定条件的文档:
> db.blog.find() { "_id" : ObjectId("50ff75376201fe04d53e42ed"), "title" : "My Blog Post", "content" : "Here's my blog post.", "date" : ISODate("2013-01-23T05:29:08.151Z") }当前,我们只插入了一条记录,所以使用find函数只会取到一条记录。
做个条件查询:
> db.blog.find({"title":"My Blog Post"}) { "_id" : ObjectId("50ff75376201fe04d53e42ed"), "title" : "My Blog Post", "content" : "Here's my blog post.", "date" : ISODate("2013-01-23T05:29:08.151Z") }如果条件符合,将会有多条数据。
查询符合条件的一条数据:
> db.blog.findOne({"title":"My Blog Post"}) { "_id" : ObjectId("5107257f2f0dc8fbf16e8f28"), "title" : "My Blog Post", "content" : "Here's my blog post.", "date" : ISODate("2013-01-29T01:27:21.858Z") }_id是记录中的主键,默认是ObjectId类型,类似的还有_class,作为类路径名。
上述查询,相当于一条 where title = 'My Blog Post' 条件式的SQL
如果需要需要且关系条件的查询,可以按如下方式写:
> db.blog.findOne({"title":"My Blog Post", "content" : "Here's my blog post."}) { "_id" : ObjectId("5107257f2f0dc8fbf16e8f28"), "title" : "My Blog Post", "content" : "Here's my blog post.", "date" : ISODate("2013-01-29T01:27:21.858Z") }相当于一条 where title = 'My Blog Post' AND content = ' Here's my blog post.' 条件式的SQL
- Update——update
譬如新增一个字段comments,先设置一个post变量,执行update操作。
> post.comments=[] [ ] > db.blog.update({"title":"My Blog Post"},post)查询该数据结果:
> db.blog.find() { "_id" : ObjectId("50ff75376201fe04d53e42ed"), "title" : "My Blog Post", "content" : "Here's my blog post.", "date" : ISODate("2013-01-23T05:29:08.151Z"), "comments" : [ ] }
再来个更新操作:
> post.comments="desc" desc > db.blog.update({"title":"My Blog Post"},post) > db.blog.find() { "_id" : ObjectId("50ff75376201fe04d53e42ed"), "title" : "My Blog Post", "content" : "Here's my blog post.", "date" : ISODate("2013-01-23T05:29:08.151Z"), "comments" : "desc" }只要数据类型支持,怎么写都可以。
- Delete——remove
remove函数可以删除整个表的记录,也可以删除符合条件的记录。
> db.blog.remove({"title" : "My Blog Post"}) > db.blog.find({"title" : "My Blog Post"}) >如果不加条件,就是全部删除。
本以为MongoDB强大也简单,不成想越研究越多,这是把书读厚的第一阶段。
集群配置相关链接:
征服 Mongodb 之 安装与系统服务配置
征服 Mongodb 之 主从复制&集群复制
基本操作相关链接: