当前位置: 首页 > news >正文

Mongodb 利用mongoshell进行数据类型转换

$type操作符

检测类型
种类 代号 别名
Double 1 “double”
String 2 “string”
Object 3 “object”
Array 4 “array”
Binary data 5 “binData”
Undefined 6 “undefined” Deprecated.
ObjectId 7 “objectId”
Boolean 8 “bool”
Date 9 “date”
Null 10 “null”
Regular Expression 11 “regex”
DBPointer 12 “dbPointer”
JavaScript 13 “javascript”
Symbol 14 “symbol”
JavaScript (with scope) 15 “javascriptWithScope”
32-bit integer 16 “int”
Timestamp 17 “timestamp”
64-bit integer 18 “long”
Min key -1 “minKey”
Max key 127 “maxKey

db.article.find({data:{$type:2})    //寻找data字段为string的文档

forEach函数

对查询结果集合中每个文档使用js函数

cursor.forEach(function)
Iterates the cursor to apply a JavaScript function to each document from the cursor.

使用例子

data.tagList数组中的string转换为int32,x代表迭代传入的文档

db.article.find({"data.tagList.0":{$type:2}}).forEach(function(x){
var i=0;
var length=x.data.tagList.length; 
for(i=0;i<length;i++ ){ 
    if(typeof x.data.tagList[i] === 'string') {
        x.data.tagList[i]=NumberInt(x.data.tagList[i]); 
    }  
};
db.article.save(x)})

note
1.使用js新特性要注意,比如我的是不支持for(var a of b)的,还有注意string是小写啊
2.可以使用print输出

db.users.find().forEach( function(myDoc) { print( "user: " + myDoc.name ); } );

转载于:https://www.cnblogs.com/jcuan/p/5863607.html

相关文章:

  • pom.xml标签以及maven在Idea使用
  • Android 样式和主题(style theme)
  • Linux作业7
  • 判断终端是ios还是安卓的一些妙用(附加微信分享图标修改)
  • 4: Accessing Environment Variables(Working with programs)
  • flat network 原理与配置 - 每天5分钟玩转 OpenStack(86)
  • 4 张 GIF 图帮助你理解二叉查找树
  • linux目录结构详细介绍
  • Android EditText光标位置(定位到最后)
  • 深刻理解Python中的元类(metaclass)
  • c++中类对象的内存对齐
  • Significance Testing
  • 延迟脚本的方式
  • shell中变量的查看和删除
  • 算法分析-分治 归并排序,递归插入排序,二分查找
  • @jsonView过滤属性
  • [Vue CLI 3] 配置解析之 css.extract
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • go语言学习初探(一)
  • JAVA SE 6 GC调优笔记
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • MaxCompute访问TableStore(OTS) 数据
  • python 学习笔记 - Queue Pipes,进程间通讯
  • SegmentFault 2015 Top Rank
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • vue-cli3搭建项目
  • 简单数学运算程序(不定期更新)
  • 前端之React实战:创建跨平台的项目架构
  • 前嗅ForeSpider教程:创建模板
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 三栏布局总结
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • hi-nginx-1.3.4编译安装
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​低代码平台的核心价值与优势
  • #Lua:Lua调用C++生成的DLL库
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (待修改)PyG安装步骤
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)winform之ListView
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • *p++,*(p++),*++p,(*p)++区别?
  • .axf 转化 .bin文件 的方法
  • .chm格式文件如何阅读
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET 设计模式初探
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET构架之我见
  • .NET开发人员必知的八个网站
  • .net开发引用程序集提示没有强名称的解决办法
  • .py文件应该怎样打开?
  • @EnableWebMvc介绍和使用详细demo