美文网首页我爱编程
MongoDB学习(二)

MongoDB学习(二)

作者: 夕阳下奔跑的狼狗 | 来源:发表于2016-12-13 11:15 被阅读0次

    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

    相关文章

      网友评论

        本文标题:MongoDB学习(二)

        本文链接:https://www.haomeiwen.com/subject/ujivmttx.html