• MongoDB 基础相关(二) 常用语句


    常用的语句用的最多的无非就是增、删、改、查

    MongoDB数据存储格式是bson,其实这种格式除了几个特殊的类型,其他的就是json的格式。所以部分数据显示可以用json格式化。在此推荐个网站可以格式化http://www.bejson.com/,虽然它要报json格式异常,但是格式还是转好了的

    转换前:

    转换后:

    1.增

    添加数据有3种方法:

    1.insert

    db.Client.insert({_id:new ObjectId(),Name:"xx",Sex:0,Created:new Date()});

    _id可以不带,系统会自己给你加上,如果有特殊要求可以自己写

    2.update

    db.Client.update({ Name : "xxx" }, { $set : { Sex: 1 } }, { upsert : true });

    如果Client表中没有 Name : "xxx"  的记录则会新加一条记录,如果有记录则更新 Sex: 1

    upsert 为true的意思是如果没有找到对应的记录则添加,如果找到则更新。该参数默认情况下为false,则没有找到数据就不添加,也不更新

    3.save

    db.Client.save({Name:"xx",Sex:0,Created:new Date()});
    

    添加时不用带_id,否则它会去更新_id对应的其他值

    特别提醒:

    new ObjectId()  是新建ObjectId的意思

    new Date() 获取当前时间,系统默认的是0时区

    2.删

    remove

    db.Client.remove({Name:"xxx"});

    删除满足{Name:"xxx"}条件的所有数据

    3.2里新加了2种新的删除方法

    db.collection.deleteOne()    删除满足条件的第一个文档

    db.collection.deleteMany()   删除满足条件的所有文档,执行之后会返回删除的个数  如:{ "acknowledged" : true, "deletedCount" : 3 }

    这2种方法还没用过,先记录一下

    3.改

    修改数据有3种方法:

    1.update

    db.Client.update({Name:"xxx"},{$set:{Sex:0}},{multi:true})

    查询条件:{Name:"xxx"}
    修改项:{$set:{Sex:0}} 其中$set可以更换为其他修改器 $set为更新 $inc为累加($inc不能应用于非数字数据) $unset 删除指定的列
    其他的$push $ne $addToSet $pop $pull 修改器还没仔细研究过,以后再来补充和细化
    是否批量更新:{multi:true} 如果为false则只更新满足条件的第一个文档,为true则更新所有满足条件的

    2.save

    db.Client.save({_id:new ObjectId("574fa87df2e2723e85e624a3"),Name:"xx",Sex:0,Created:new Date()});
    

    带上_id就可以更新指定id的所有列

    特别提醒:

    如果用save进行保存时少了Created列,那么更新后的数据就会没有Created列

    3.findAndModify  更新并返回更新的数据

    db.Client.findAndModify({query:{Sex:0},update:{$set:{Sex:1}}});

    查询条件:query为键,查询条件为值,如上所示

    修改项:update为键,修改列和项为值,如上所示,其中$set也可更换为其他修改器

    需要注意的是,如果查询结果是多个,它只会更新满足条件的第一个文档并返回

     

    4.查

     一般比较常用的是find、findOne,下一篇详细来写

  • 相关阅读:
    XP系统无法安装net framework 4.0 解决方法
    StructureMap DI & IoC 工具介绍
    Castle ActiveRecord学习实践(7)级联
    Error.popStackFrame 函数
    抽象泄漏(leaky abstraction)
    [Exception]IIS6:The entry "*" has already been added的解决方法
    ASP.NET 设计模式 读书摘记2
    PHP模块开发(一) PHP环境搭建
    PHP函数HTTP 相关函数
    PHP函数FTP文件传输函数
  • 原文地址:https://www.cnblogs.com/zp1287516153/p/5546301.html
Copyright © 2020-2023  润新知