• [MongoDB]增删改查


    摘要

    上篇文章学习了mongodb在windows上的安装,以及如何开启mongodb,最后列举了简单的增删改查操作。本篇将继续深入学习一下增删改查。

    相关文章

    [MongoDB]入门操作

    CRUD

    通过上篇文章,我们知道collection中存储的每个对象是一个document对象。document是以键值对存在的json形式的对象。我们都知道json的value中存储的数据,可能是单个对象,字符串,数组,也可能是嵌套的json等类型的数据。

    insert

    插入操作又分为:单个插入和批量插入。

    案例:创建一个user,该对象包括用户名称,所在的公司,公司包含公司名称及地址信息。

    通过上面的插入操作,我们发现user中包括一个嵌套的company json对象。

    后来由于公司app需要添加通讯录功能,需要保存该用户的好友。这是user的friends就可以是一个数据,用来保存用户的name

    关于批量插入的操作,查找了很久也没找到合适的方式,估计是mongodb的javasrcipt shell不支持批量的操作吧。不过你可以使用c#驱动,变相的实现批量插入,一个循环一条一条的插入。

    find

    查找操作,查找支持>,>=,<,<=,!=,=,在mongodb中这些比较符对应的为$gt,$gte,$lt,$lte,$ne。

    插入测试数据,用来做find操作

    查找年龄等于20的用户

    查找年龄大于等于18的用户

    其他的比较符不再举例,模仿上图$gte的操作。

    $exists 是否存在某个字段

    查找存在company字段的document

    查找不存在address字段的user

    $in:在某个范围

    查找公司地址在beijing,shanghai的用户

    $nin:不在某个范围

    db.users.find({"company.address":{$nin:["beijing","shanghai"]}})

    $or:或者

    查找用户公司在北京,或者用户年龄满20周岁的用户

    正则表达式查询

    复杂条件查询可以通过$where实现,可以将js的function 作为$where的值,使用js的实现复杂的条件查询。

    update

    mongodb的更新,分为整体更新和局部更新。

    整体更新:就是所有的不管变化没变化都需要update,有点类似ef中的更新,先查询出对象,然后修改一个字段的值,再更新回去。

    局部更新:只是对需要的字段进行更新。

    mongodb为我们提供了两个关键字:$inc,$set用来实现mongodb的更新操作。

    $inc:增量,是increase的缩写。在原来的基础上加上某个值。

    修改年龄为29的用户的年龄,在这个基础上加上-9

    $set

    用法类似sql中的set

    update方法第三个参数,bool类型参数,默认为false,如果为true,则标识如果不存在则创建的操作。

    更新名称为zhangsan的用户信息,不存在则创建

    批量更新

    将第四个参数设置为true

    remove(where)

    总结

    本篇文章学习了mongodb的增删改查的操作。动手操作一遍加深印象。

    参考

    http://www.cnblogs.com/huangxincheng/archive/2012/02/19/2357846.html

  • 相关阅读:
    springMVC-接收数据-参数绑定
    我的asp.net core目录
    我的IdentityServer目录
    win10安装mysql
    asp.net core webapi 生成导出excel
    Dapper, 批量插入,批量更新, 以及in, like
    asp.net core 依赖注入几种常见情况
    asp.net core 2.1 配置管理
    各个模式的accesstoken续期详解
    ResourceOwnerPassword模式使用数据库.
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/5539094.html
Copyright © 2020-2023  润新知