Home > Database > Mysql Tutorial > body text

mongodb的写入,删除,更新

WBOY
Release: 2016-06-07 15:56:11
Original
1156 people have browsed it

1. mongodb创建数据库和集合 mongodb数据库和集合的创建是隐式的。意思是说不用单独写create database 语句。直接使用use关键词即可。在bin/mongo shell下运行: use test; 这样会生成test数据库,如果不写入离开,系统自动删掉。集合也是隐式的,不用专门指

1. mongodb创建数据库和集合

mongodb数据库和集合的创建是隐式的。意思是说不用单独写create database 语句。直接使用use关键词即可。在bin/mongo shell下运行:
use test;
Copy after login
这样会生成test数据库,如果不写入离开,系统自动删掉。集合也是隐式的,不用专门指定,直接insert一个文档,会产生一个集合。

2. 文档写入

插入使用insert:
db.user.insert({"name" : "gang"});
Copy after login
user为集合名称,这就写入了一条数据。

3. 文档删除

文档删除使用remove关键词。
db.user.remove();
Copy after login
删除user下面所有的数据。如果指定删除特定条件的数据,需要给remove加上参数。
db.user.remove({"name" : "gang"});
Copy after login
删除name为gang的所有用户。

4. 文档修改更新

文档更新使用update关键词,更新具有原子性,若两个更新同时到达服务器,先到的先执行,然后执行另一个。 update有两个参数:第一个:查询出要更新的文档,第二个修改器modifier,做哪些修改。

1. update更新

update直接可以用第二个参数更新整个文档。
db.user.update({"name" : "gang"}, {"new_name" : "gang"});
Copy after login
查看结果
db.user.find();
{ "_id" : ObjectId("536f5ccd7a37c2e745770ed7"), "new_name" : "gang" }
Copy after login

2. $set和$unset

$set设置一个新值,如果不存在,则创建。
db.user.update({"name" : "gang"}, {"$set" : {"age" : 25}});
Copy after login
新加了一个age选项,使用find查看
db.user.find();
{ "_id" : ObjectId("536f5ccd7a37c2e745770ed7"), "age" : 25, "name" : "gang" }
Copy after login
$unset可以删掉一个key
db.user.update({"name" : "gang"}, {"$unset" : {"age" : 1}});
Copy after login
查看
db.user.find();
{ "_id" : ObjectId("536f5ccd7a37c2e745770ed7"), "name" : "gang" }
Copy after login

3. $inc

$inc用于增加或减少指定的值,不存在则创建。常用于计数器。 $inc必须作用于整数或浮点数。
db.user.update({"name" : "gang"}, {"$inc" : {"score" : 5}});
Copy after login
如果想减少,则设置为负数。
db.user.update({"name" : "gang"}, {"$inc" : {"score" : -5}});
Copy after login

4. 数组操作

数组操作使用$push压入一条, $pop弹出一条。
db.user.update({"name" : "gang"}, {"$push" : {"subjects" : {"chinese" : 10, "math" : 15}}});
Copy after login
使用$addToSet 处理,会处理重复请求,不存在才会写入。
$pop,从数组中删除一个。 key : 1 从数组末尾删除一个。 key: -1 从数组开始删除一个。
 >db.user.find();
{ "_id" : ObjectId("536f5ccd7a37c2e745770ed7"), "name" : "gang", "age" : [ 1, 2, 3, 4 ] }

>db.user.update({"name" : "gang"}, {"$pop" : {"age" : 1}});

>db.user.find();
{ "_id" : ObjectId("536f5ccd7a37c2e745770ed7"), "age" : [ 1, 2, 3 ], "name" : "gang" }
> db.user.update({"name" : "gang"}, {"$pop" : {"age" : -1}});
> db.user.find();
{ "_id" : ObjectId("536f5ccd7a37c2e745770ed7"), "age" : [ 2, 3 ], "name" : "gang" }
Copy after login
$pull 从数组中删除指定的数据。
> db.user.update({"name" : "gang"}, {"$pull" : {"age" : 2}});
> db.user.find();
{ "_id" : ObjectId("536f5ccd7a37c2e745770ed7"), "age" : [ 3 ], "name" : "gang" }
Copy after login

5. upsert

upsert如果找到匹配条件则更新,不存在则新建一个。需要将update的第三个参数设置为true。

6. 更新多个文档

update默认是更新一条记录, 如果需要更新多个文档,需要将update的第四个参数设置为true。
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template