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端口加入进去。
具体操作不会的可以留言哦~。~
mongoDB高级查询$type4array使用解析的更多相关文章
- mongodb高级查询
前几篇,老玩家绕道即可,新手晚上闲着也是蛋疼,不如把命令敲一边,这样你就会对MongoDB有一定的掌握啦.如果没有安装MongoDB去看我的上一篇博客 MongoDB下载安装与简单增删改查 前奏:启 ...
- mongodb 高级聚合查询
mongodb高级聚合查询 在工作中会经常遇到一些mongodb的聚合操作,特此总结下.mongo存储的可以是复杂类型,比如数组.对象等mysql不善于处理的文档型结构,并且聚合的操作也比mysq ...
- mongodb的高级查询
db的帮助文档 输入:db.help(); db.AddUser(username,password[, readOnly=false]) 添加用户 db.auth(usrename,passwor ...
- 大型运输行业实战_day04_2_高级查询
1.高级查询最总效果 2.高级查询步骤 2.1页面输入框显示 开始车站:<input id="startStation" type="text" valu ...
- MongoDB高级查询用法大全
转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册: http://www.mongodb.org/d ...
- DataBase MongoDB高级知识-易使用
MongoDB高级知识-易使用 mongodb是一个面向文档的数据库,而不是关系型数据库.不采用关系模型主要是为了获取更好的扩展性.当然还有其他的一些好处. 与关系型数据库相比,面向文档的数据库不再有 ...
- DataBase MongoDB高级知识-易扩展
MongoDB高级知识-易扩展 应用程序数据集的大小正在以不可思议的速度增长.随着可用宽带的增长和存储器价格的下跌,即使是一个小规模的应用程序,需要存储的数据也可能大的惊人,甚至超出了很多数据库的处理 ...
- DataBase MongoDB高级知识
MongoDB高级知识 一.mongodb适合场景: 1.读写分离:MongoDB服务采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据.Primary和Secondary ...
- jqgrid自定义列表开发=》实现高级查询
标题已指出本文要说的三件事,首先是主角jqgrid,将应用在自定义列表中,重点介绍如何实现高级查询. 使用jqgrid实现自定义列表分为两大步骤,首先是要根据业务完成jqgrid的对象定义,即列表的描 ...
随机推荐
- javascript 思维导图 总结
项目接近尾声,闲暇时间对JavaScript的总结,包含数组的一些知识(创建.访问.关联数组,数组API,以及二维数组).js的内置对象.面向对象概念和特征.以及部分ES5特性. 大纲如图: 如需可下 ...
- 【开发技术】Beyond Compare
黑色表示左右两侧的文件(夹)是一样的; 紫色表示右(左)侧是完全没有的,这时我们右击这个文件(夹),选择“复制到右(左)侧”即可: 红色表示两边都有这个文件(夹),但不完全相同,这时你就要权衡一下修改 ...
- Struts 2 标签库及使用
1 Struts 2 基本的标签属性. 1) name:指定表单元素的名称,该属性与Action中定义的属性相对应. 2) value:指定表单元素的值. 3) required:指定表单元素的必填 ...
- 流程控制语句if、else、elif、break、continue
1.控制流程 # if 判断语句 a = 12 if a>0: print('a大于0') if a<5: print('a大于5') else: print('哈哈哈') 2.基本形式: ...
- Spring MVC 配置文件dispatcher-servlet.xml 文件详解(转自 学无止境-yj)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 无法远程连接SQLSERVER2000的解决方法
有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进行名字解析,具体的方法是: 1.使用记事本打开HOSTS文件(一般情况下 ...
- 字段的参数 -- Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...
- R-FCN论文翻译
R-FCN论文翻译 R-FCN: Object Detection viaRegion-based Fully Convolutional Networks 2018.2.6 论文地址:R-FCN ...
- 记React+.NetCore API实现动态列导出
1.效果演示 2.用到的第三方类库 前端:React,Dva,Antd 后端:ASP.NET CORE,System.Linq.Dynamic.Core,EPPlus.Core 3.基本思路 第一:E ...
- 使用locate 的正则查询 查找所有main.c
locate支持正则查询的功能, 只需输入locate -r 正则表达式 即可. 现在我想查找所有main.c怎么做? 打开终端,输入shell: locate -r main.c$ PS:' ...