您好,欢迎来到微智科技网。
搜索
您的当前位置:首页mongoDB入门基础----update()常见操作

mongoDB入门基础----update()常见操作

来源:微智科技网
mongoDB⼊门基础----update()常见操作

什么是mongDB?

MongoDB 是⼀个基于分布式⽂件存储的数据库。由 C++ 语⾔编写。旨在为 WEB 应⽤提供可扩展的⾼性能数据存储解决⽅案。MongoDB 是⼀个介于关系数据库和⾮关系数据库之间的产品,是⾮关系数据库当中功能最丰富,最像关系数据库的。1.创建数据库:use firstdb(这条会使⽤或者创建,如果没有就创建);

2.创建集合:db.createCollection(\"users\") //集合就相对于⼀个数据库下的⼀个table;

3.插⼊数据: db.users.insert({ name:\"blue\插⼊数据以标准的JS对象形式插⼊;

常⽤快捷操作:

show dbs 显⽰所有数据库名;

db显⽰当前所在位置(使⽤的是哪个数据库) ;show collections 显⽰当前数据库下的集合;db.dropDatabase( ):删除当前数据库;

db.集合.remove({name:\"blue\删除 当前集合下的⼀个数据 ;db.集合.drop() ;删除当前集合;

数据库最常⽤的操作是update()操作,下⾯看看:

例如现在给users集合中的 name:\"bule\"的添加⼀个爱好属性:use firstdb

db.user.update({name:\"blue\        $set会给⼀个已经存在的数据修改⼀个属性,如果没有这个属性就增加这个属性和值;现在删除hobby这个属性:

db.user.update({name:\"blue\               $unset会把属性和属性值都删掉;

假设现在有⼀个这样的⽂件数据:

{name:\"bule\{name:\"leo\{name:\"lisi\

变成这样:也就就增加⼀个数组和多个对象:

{name:\"bule\春城\⼗⾯埋伏\"]}

{name:\"leo\

{name:\"lisi\ 只需:

db.user.update({name:\"blue\

db.user.update({name:\"blue\春城\db.user.update({name:\"blue\⼗⾯埋伏\或者:

db.user.update({name:\"blue\

db.user.update({name:\"blue\春城\

db.user.update({name:\"blue\⼗⾯埋伏\

$addToSet跟$set有点类似:不同的是:前者会把⼀个属性认为是⼀个数组,不存在就push()进去,存在则不做任何操作;

$addToSet与$push的相同点都是可以往属性后⾯追加数组;不同的是:$push可以追加多次相同的; 即可以 [\"看书\看书\看书\"] ;但是$addToSet连续三次操作只会是[\"看书\"]也可以⽤简单⽅式:

var reading_some=[one night in Beijing\春城\⼗⾯埋伏] ;

db.user.update({name:\"blue\

如果要从数组中删除⼀次呢?

db.user.update({name:\"blue\$pop:{readingBook:1}) ;   1 表⽰从数组最后⼀项做⼀次删除操作; -1 表⽰从头开始删除⼀位 ;就算是删除完了再删也不会报错;查看⼀下:db.user.find({}) ;变成这样:

{name:\"bule\春城\"]}

如果是吧3个⼈都加上同样的readingBook呢?只需要:

db.user.update({},{$addToSet:{readingBook:{$each:reading_some} }}, {malti:true});      malti:true 表⽰多选:所以到了这⾥我们⼤概明⽩:update⼀个参数实际上是⼀个类似选择器的东西;⽤了赛选符合条件的数据;

于是数据暂时变成这样:

{name:\"bule\春城\⼗⾯埋伏\"] }

{name:\"leo\春城\⼗⾯埋伏\"] }

{name:\"lisi\春城\⼗⾯埋伏\"] }

如何把bule的readingBook数组的第⼀项变成 one night in HongKong 呢?db.user.update({name:\"bule\readingBook.1:\"one night in HongKong\

所有的呢?

db.user.update({},{$Set:{readingBook.1:\"one night in HongKong\本⼈做到这⾥也发现了⼀个问题:先执⾏插⼊⼀条:

db.user.insert({name:\"kangkang\

如果其中有⼀个数据没有 readingBook这个属性:那么 执⾏上⾯这条语句会出现⼀个奇怪的问题:

那么{name:\"kangkang\

其实⼤概也能理解: $set只能⽣成⼀个对象值,不能⽣成⼀个数组; 所以按数组下标来修改所有数据其实是容易出错的,除⾮它们都是⾮常统⼀的数据;

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务