zoukankan      html  css  js  c++  java
  • mongoDB高级查询$type4array使用解析

      今天在使用mongoDB高级查询$type:符号 -- 4代指Array类型发现一个问题。

    $type符号:

      $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。

    下面是mongoDB可使用类型参照表,图来自mongoDB菜鸟教程。

    我使用的是mongoDB shell version是2.6.10版本比较老,不能使用insertOne/Many,deleteOne/Many等这些新方法。

    因此下了个可视化工具robomongodb,这是官方下载地址:https://robomongo.org/download,一般下载windows版就行。

    下面附一下,怎么链接你的Linux:

      1.先解压到桌面,顺便给大家展示下我的北极星小姐姐

        2.运行这个图标:放大再放大,还是很可爱的@·@

      3.接下来的next,遇到填的当作没看见,最后finish。

      4.接下来会看到这个界面,上面是我的已经连上的。请忽略下面两个鬼花狐是Connection和Cancel

     

      5.打开你的linux VMware ,确保输入mongo可以进入,mongodb的环境安装太复杂就不一一介绍,

    一般去公司也是装好的。

      6.假设VMware上有了,下面输入ifconfig这条命令,如果你也比较懒,请输入if后Tab键,看到你的host记住

      7.找到这个配置文件mongod.conf,输入这个命令:whereis mongodb,我的会看到/etc/mongodb.conf,

    但不需要ta,在同目录下(/etc)有个mongod.conf长的太像了,接着输入命令:sudo vim /etc/mongod.conf,

    找到下面有个ip127.0.0.1改成0.0.0.0,vim命令要是不熟subline打开改一下就行,保存关闭。

      8.最后,打开robo看上面这个图上面的蓝色小字create,到下面的界面,起个名,

    输入刚记住的ip,点test测试下就连接上了。 

      

    下面到正题,待会用上面的可视化工具插入以下数据(假如你玩熟了这个工具,so easy的!):

      点你创建的collections中的表,右侧会出现一个输入框改为:db.你的表名.insertMany([中间插入下面的代码])

    可适当调下缩进美观。数据有了,下面重启窗口把刚刚那个表名点两下,输入框输入语句:db.你的表名.find({readings:{$type:4}})

    >>>输入只有两条数据是符合Array,_id为1和3的,虽然,这5条数据的类型都是array,但是按照例子结果导向是列表的嵌套

    此处易与之前所知的list和array混淆。

      

    {
       "_id": 1,
       "readings": [
          25,
          23,
          [ "Warn: High Temp!", 55 ],
          [ "ERROR: SYSTEM SHUTDOWN!", 66 ]
       ]
    },
    {
       "_id": 2,
       "readings": [
          25,
          25,
          24,
          23
       ]
    },
    {
       "_id": 3,
       "readings": [
          22,
          24,
          []
       ]
    },
    {
       "_id": 4,
       "readings": []
    },
    {
       "_id": 5,
       "readings": 24
    }

    以上是mongoDB官网实例,英文文档,中文文档没有这个例子。

    https://docs.mongodb.com/manual/reference/operator/query/type/

    >>>补充一下:刚上面截图我有两个ip链接着,下面是我的阿里云服务器,如果你有阿里云服务器的话,连接也是很容易的,

    只需要在你的阿里云控制台安全组设置mongoDB的端口号,因为你是外部连接阿里云所以需要把这个27017端口加入进去。

    具体操作不会的可以留言哦~。~

    实践出真知~
  • 相关阅读:
    <Docker学习>5. docker数据管理
    <Docker学习>4. docker容器的使用
    <Docker学习>3. docker镜像命令使用
    <Docker学习>2.Centos7安装docker
    java注解
    基于django的个人博客网站建立(七)
    强大的django-debug-toolbar,django项目性能分析工具
    一个简单的WebServer,socket+threading
    基于django的个人博客网站建立(六)
    基于django的个人博客网站建立(五)
  • 原文地址:https://www.cnblogs.com/NolaLi/p/8463420.html
Copyright © 2011-2022 走看看