今天在使用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端口加入进去。

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

posted on 2018-02-23 20:38  落叶虽美只活一世  阅读(402)  评论(0编辑  收藏  举报
Live2D