MongoDB学习(二)

MongoDB 更新文档

MongoDB 使用update()save()方法来更新集合中的文档。

update() 方法

update() 方法用于更新已存在的文档。语法格式如下:

db.collection.update(<query>,<update>,{upinsert:<boolean>,multi:<boolean>,writeConcern:<boolean>};

参数说明:

query:update的查询条件,

update:update的对象和一些更新的操作符(如$,$inc...)等,

upinsert:可选,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

multi:  可选,mongodb 默认是false,只更新找到的第一条记录,如果参数为true,就把按条件查出来多条记录全部更新。

writeConcern:可选,抛出异常的级别。

Example

我们这里更新上一节插入的数据,按照name来更新:

update方法更新文档实例图

可以看到Evan的密码由原来的12306改成了Evan;如果需要更新多条记录的话则需要将multi属性设置为true;

save()方法

save() 方法通过传入的文档来替换已有文档。语法格式如下:

db.collection.save(<document>,{writeConcern:<boolean>};

参数说明

document:  新的文档数据;

writeConcern:  可选,抛出异常的级别。

Example

下面我们要替换_id为584f57701ec0d6a2350c47a7的文档数据。

save方法更新文档实例图

从上图可以看出,原来的_id为584f57701ec0d6a2350c47a7的文档被新的文档替换了。

MongoDB 删除文档

remove()函数是用来移除集合中的数据。语法格式如下:

db.collection.remove( <query>, { justOne:<boolean> , writeConcern:<boolean> }) ;

参数说明

query:(可选)删除文档的条件,

justOne:(可选)如果设为1或者true,则只删除一个匹配的文档。

writeConcern:(可选)抛出异常的级别

Example

我们已之前的数据为例:

实例数据图1

接下来我们移除名称(name)为‘Lukes’的文档:

实例数据图2

从上图可以发现名称(name)为‘Lukes’的文档已经被删除了。

如果你只想删除第一条找到的记录可以设置 justOne 为 1,如下所示:

db.COLLECTION_NAME.remove(query,1)

如果你想删除所有数据,可以使用以下方式(类似常规 SQL 的 truncate 命令):

db.DBName.remove({})

MongoDB 查询文档

语法格式:

>db.COLLECTION_NAME.find()

find() 方法以非结构化的方式来显示所有文档。

如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:

>db.db_test.find().pretty()

pretty() 方法以格式化的方式来显示所有文档。

Example

查询文档实例图1

除了 find() 方法之外,还有一个 findOne() 方法,它只返回一个文档。

MongoDB 与 RDBMS Where 语句比较

如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:

操作格式范例RDBMS中的类似语句

等于{:}             db.db_test.find({"name":"Lukes"}).pretty()               where name= 'Lukes'

小于{:{$lt:}}      db.db_test.find({"likes":{$lt:50}}).pretty()                  where likes < 50

小于或等于{:{$lte:}}   db.db_test.find({"likes":{$lte:50}}).pretty()       where likes <= 50

大于{:{$gt:}}      db.db_test.find({"likes":{$gt:50}}).pretty()                 where likes > 50

大于或等于{:{$gte:}}      db.db_test.find({"likes":{$gte:50}}).pretty()   where likes >= 50

不等于{:{$ne:}}    db.db_test.find({"likes":{$ne:50}}).pretty()               where likes != 50

MongoDB AND 条件

MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,及常规 SQL 的 AND 条件。

语法格式如下:

>db.db_test.find({key1:value1,key2:value2}).pretty()

Example

以下实例通过namepassword键来查询数据

查询数据实例图2

以上实例中类似于 WHERE 语句:WHERE name='Evan' AND password='123456'

MongoDB OR 条件

MongoDB OR 条件语句使用了关键字$or,语法格式如下:

>db.db_test.find({$or: [{key1:value1},{key2:value2}] }).pretty()

Example

以下实例中,我们演示了查询键name值为 Evan 或键password值为Evan的文档。

查询文档实例图3
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,050评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,538评论 1 306
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,673评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,622评论 0 218
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,047评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,974评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,129评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,893评论 0 209
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,654评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,828评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,297评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,619评论 3 262
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,326评论 3 243
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,176评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,975评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,118评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,909评论 2 278

推荐阅读更多精彩内容