Heim > Datenbank > MySQL-Tutorial > mongodb的写入,删除,更新

mongodb的写入,删除,更新

WBOY
Freigeben: 2016-06-07 15:56:11
Original
1169 Leute haben es durchsucht

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

1. mongodb创建数据库和集合

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

2. 文档写入

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

3. 文档删除

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

4. 文档修改更新

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

1. update更新

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

2. $set和$unset

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

3. $inc

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

4. 数组操作

数组操作使用$push压入一条, $pop弹出一条。
db.user.update({"name" : "gang"}, {"$push" : {"subjects" : {"chinese" : 10, "math" : 15}}});
Nach dem Login kopieren
使用$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" }
Nach dem Login kopieren
$pull 从数组中删除指定的数据。
> db.user.update({"name" : "gang"}, {"$pull" : {"age" : 2}});
> db.user.find();
{ "_id" : ObjectId("536f5ccd7a37c2e745770ed7"), "age" : [ 3 ], "name" : "gang" }
Nach dem Login kopieren

5. upsert

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

6. 更新多个文档

update默认是更新一条记录, 如果需要更新多个文档,需要将update的第四个参数设置为true。
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage