MongoDB入门篇--增删改查

在上篇博文mongodb已经成功启动:http://blog.csdn.net/u010773667/article/details/41847487,接下来就该进行一系列操作了。我们再开一个cmd,输入【mongo】命令打开shell即mongodb的客户端,默认连接的是“test”数据库,我这里设置集合(表)为student。图一:

1. 添加insert

语法:db.集合.insert({“Col1”:”列值1”,”Col2”:”列值2”,…,”Coln”:”列值n”})

2. 查找find

2.1全部查询

语法:db.集合.find()

2.2条件查询

语法:db.集合.find({“Col1”:”列值1”,”Col2”:”列值2”,…,”Coln”:”列值n”})

操作示例:添加+查找

注意:“_id"这个字段是数据库默认给我们加的GUID,目的是保证数据的唯一性。

3.修改

3.1全部修改update

语法:db.集合.update({“Col”:”列值”},{”Col2”:”列值2”,…,”Coln”:”列值n”})

注意:

第一个参数{…}为“查找的条件”,第二个参数{…}为“要更新的值”;

Update()为全部修改,第二个参数中需要包含全部的”字段”,否则更新后会造数据的丢失,具体影响请见下图示例。

操作示例:全部修改+错误实例

3.2.局部修改

Mongodb中为局部修改提供了两个修改器: $inc 和 $set。

① $inc修改器

$inc即increase的缩写,自增$inc指定的值,如果“文档”中没有此key,则会创建key。

语法:db.集合.update({"col1":"列值1"},{$inc:{"col2":"列值2",...,"coln":"列值n"}}

②  $ set修改器

直接将对应的数据替换为$set指定的值。

语法:db.集合.update({"col1":"列值1"},{$set:{"col2":"列值2",...,"coln":"列值n"}})

操作示例:局部修改+高级修改

3.3 upsert操作

Upsert=update+insert,智能判断更新或添加,所以我更愿意称之为高级修改。也就是说:如果查到了文档直接更新,否则在数据库里面新增一条。 将update的第三个参数设为true即可。操作示例见上图。

语法:db.集合.update({"Col":"列值"},{$inc:{"Col2":"列值2",…,"Coln":"列值n"}},true)

3.4批量修改

在前面几个的基础上进行改进,不在多做解释。

语法:db.集合.update({"Col":"列值"},{$inc:{"Col2":"列值2",…,"Coln":"列值n"}},true,true)

操作示例:批量修改

4.删除remove

语法:db.集合.remove()

db.集合.remove({"Col":"列值"},{"Col2":"列值2",…,"Coln":"列值n"})

操作示例:删除

(5~6为高级操作,不做详细介绍)

5.分组查询group

操作示例:分组查找

6.除重distinct

7.统计count

操作示例:除重+统计

以上是我操作后的实例分享,再次操作一遍感觉收获的更多。还记得刚开始动手操作的时候,关于修改部分只接触了全部修改,当时那时候还以为跟其他数据库操作一样修改就是一个update()方法,所以实践的时候就直接进行了部分修改,后果就像图中显示的一样造成了数据丢失。当时还在想“不会吧,难道只修改一两个字段还要把所有的都写上吗?这也太麻烦了吧。。。”,后来跟旁边的大神周响师哥讨论他告诉我mongodb修改有两种方法也就是上文提到的mongodb专门封装的部分修改的方法。当时貌似当时走了弯路,不过现在想想真的是弯路吗?

时间: 2024-10-10 16:24:33

MongoDB入门篇--增删改查的相关文章

使用MyEclipse对MongoDB数据库 进行增删改查操作

前面写了一篇MongoDB的下载与安装,接下来此篇写的是MongoDB数据库在JAVA程序中的基本功能: 使用MyEclipse对MongoDB数据库进行增删改查操作 1.导入JAR包 使用了Spring3.0:此类包,可以上网查询"MongoDB相关JAR包" 2.创建一个Person实体类 源代码如下: public class Person(){ //属性 Private String id; //id Private String name; //name Private in

Mybatis简单的入门之增删改查

一般的步骤如下 1.添加Mybatis所需要的包,和连接数据库所需的包 2.配置mybatis-config.xml文件 3.配置与pojo对应的映射文件 mybatis-config,xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http:/

Mybatis入门之增删改查

Mybatis入门之增删改查 导入包: 引入配置文件: sqlMapConfig.xml(mybatis的核心配置文件).log4j.properties(日志记录文件) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.or

Mysql 入门,增删改查(进阶篇)

主要已以下两个表students与students_score,进行数据的增删改查操作!     1.SELECT 1)select id,tel from students where id in(2,6) and tel not in('18392868125'); #从students表中,取出id在2和6之间的,并且tel不为'18392868125'的数2)select id,tel from students where tel = '18392868125' limit 1; #拉

nodejs对mongodb数据库的增删改查操作(转载)

首先要确保mongodb的正确安装,安装参照:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-linux 另外可以参考我的另一篇博文 http://www.cnblogs.com/sexintercourse/p/5774310.html 指导mongo和nodejs的开发 然后下载nodejs的mongodb的driver npm install mongodb 编写一个测试的程序: 1 v

Hibernate入门_增删改查

一.Hibernate入门案例剖析:  ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private Integer age; private String name; public Integer getSid() { return sid; } public void setSid(Integer sid) { this.sid = sid; } public Integer getAge()

全文检索之lucene的优化篇--增删改查

主要介绍增删改查索引的功能,并且对于查询到的关键字,返回高亮的结果.高亮的效果,就是将查询出来的结果,在前后加上标签,<font color="red">和</font>这样在浏览器显示的就是红色的字体. 目录效果如上,建立一个com.lucene的包,建立一个IndexDao的类,里面写入索引的增删改查方法;而建立的IndexDaoText类则是对这增删改查的测试;QueryResult则是一个查询结果的类,里面只有2个字段,总记录数和记录集合. 其中Inde

CoreData 入门使用 增删改查 swift

首先新建一个 点击新建的testInfo.xcdatamodeld 会出现这么个界面 创建完testInfo.xcdatamodeld之后 AppDelegate 会自动帮你添加支持coredata的代码 有兴趣的自己研究 首先 使用coredata 存储数据 1.创建表 2.创建字段 3.创建对应字段的模型类 就足够了 创建表 点击 然后出现 添加字段 .................... 创建对应字段的模型  command+n  都勾上之后会自动帮你创建一个类  好 一切准备完毕.  

node.js对mongodb的连接&amp;增删改查(附async同步流程控制)

1.启动mongodb数据库 官网下载mongodb数据库 在mongodb根目录下创建文件夹:假设取名为test. 我们认为test就是mongodb新建的数据库一枚. 创建批处理文件 xxx.bat,内容如下: 运行e盘mongodb文件夹下bin目录下的 mongod.exe,参数为 -dbpath E:\mongodb\test. E:\mongodb\bin\mongod.exe -dbpath E:\mongodb\test 这样就启动了mongodb下test数据库的服务器. 2.