• mongodb 基本指令学习 (2)


    db.collectionname.find(<criteria>, <projection>) 

    <criteria>   可选   类型 文档    文档的过滤条件  

    <projection>  可选 类型  文档  对结果进行字段的匹配   {字段1:<booleadn>,字段2:<boolean>...} (也就是第二个参数能控制我们在过滤条件下结果字段的显示)

    当我们不提供任何参数的时候,就是查询整个文档 

    下面的例子对结果字段进行了匹配 

    上面的例子我们首先选择了id为2的文档,并且在结果中我们只想要对bigname进行显示

    好奇的你 一定会这么做

    能不能显示id不显示bigname这个字段呢 duangduangduang 报错了  意思是你不能将包含和不包含字段的写法融合在一起(排除_id 这个mongodb提供的_id能是实现包含和不包含融合在一起) 上例子

    也就是当我们只想要一列的时候 我们可以通过上面的方式  多列的时候就多几个类的参数为1 或者我们只想要一列不显示的时候设置一列的参数为0

    并且在db.collectionname.find() 后面还可以加一些 查询游标的方法 例如 limit()限制结果集数量   skip()跳过一定的条目,返回结果集  sort() 排序

    首先我在数据库中插入了许多id不同的数据 测试上面几个游标方法

    上面的使用sort()的游标 属性的值为1的时候是升序  属性值是-1 的时候是降序

    or的用法

    $lt <
    $lte <=
    $gt >
    $gte >=
    $in in
    $nin not in
    $ne !=

    参照上面的几个操作符 ,我们进行几个查找操作

    匹配null  这个是查询不存在该字段的文档值

    like查询   

    注意最下面的两条就是通过like查询出来了   只有前匹配或者后匹配的情况下 就要将不进行匹配的进行转移

    上面的例子是后匹配的like

    在这里添加一个关于collection的操作 db.collectionname.count() 查询数据集的文档数量

    where 查询 

     db.collectionname.count(<query>)   符合query的条目数

    db.collectionname.remove(<query>,justone)  justone 布尔值  为true的时候只删除一个文档

    首先当我们想要删除一个collection中所有的文档的时候 db.collection.remove({})   这里必须提供一个空的对象 实现全部删除的目的

    当我们不提供第二个参数的时候,默认为false 就是从文档中删除所有匹配query的项  

    mongodb 数组查询

    文档的结构中是可以存储数组的 那我们怎么实现数组的查询呢?

    如果你提供的key值后面的value值是一个数组的话 当你提供的value在存储的key的value值的数组中时 mongodb就是返回我们需要的结果

    上面我们发现有一条文档记录的value值并不是数组  也就是mongodb的find()的方法既能匹配数组的值 也能匹配单一的值  上面的例子是会匹配所有name的值包含a的数组的文档或者name的值是a的文档


    匹配特定的数组 (其实这个没有什么特别 只是列出来 跟下面的作对比)

    我们要匹配包含一部分的数组的值的时候呢  也就是匹配数组的一部分值 

    根据数组的元素的长度进行匹配 

    向数组内添加值

    $push   这个操作只能对一个value是数组的文档项使用 如果不存在该key的值 创建数组项

    $pushAll push后面的参数就是要添加到数组中的值  如果它是一个数组那么就在数组中添加一个数组    $pushAll 是同时将多个值添加到数组中 其中的每一个项一次添加到数组中

    (区分它们两个就是一个和多个的区别)

    $pop   当后面的值是1的时候删除最后一个数组项  后面的值是-1的时候删除第一个数组项

    $pull  从数组中删除一个特定的值

    $pullAll   从数组中删除多个值

    上面的例子中有两个相同的值 可以看见它们都被删除了

    2016.4.20  批量的插入数据

    指令 mongoimport   启动mongodb   在控制台进入bin目录 输入  mongoimport --db dbname --collection collectionname --file fileurl   -jsonArray   

    通过上面的指令就mongo就能读取json文件将数据批量的插入到数据库中(dbname 和 collectionname 不存在的时候 会自动的创建) 

    2016 5 14

    刚遇到一个问题 就写在这里  是关于mongodb的 

    我强制关闭了monggodb后 发现再次启动mongodb的时候显示unclear shutdown detected   是因为强制关闭后,会导致数据不一致性或者数据损坏,所以必须手动修复

    修复的时候指定数据存放的位置,这样就能正确的启动mongodb了

  • 相关阅读:
    程序员年后离职跳槽指南
    程序员年后离职跳槽指南
    程序员为什么会有职业瓶颈?
    程序员为什么会有职业瓶颈?
    年过35岁的程序员都去哪了?一张图道尽老程序员们的花样出路
    年过35岁的程序员都去哪了?一张图道尽老程序员们的花样出路
    对于Ping的过程,你真的了解吗?
    对于Ping的过程,你真的了解吗?
    shell解析命令行的过程以及eval命令
    shell的命令替换和命令组合
  • 原文地址:https://www.cnblogs.com/tiantianwaigong/p/4992808.html
Copyright © 2020-2023  润新知