mongo java 踩坑记
为什么会有这么多坑
1. Java会把 id:String = "合法ObjectId" 好心好意的 转为 _id:ObjectId 类型。
2. 为了避免第1点, 我定义了一个 HashMap, 里面放 id 它就不会转了,但是下面代码报错:
mor.sys.user!!
.UpdateById("58f6cdfe2b3fe4673b897061")
.where("roles.id" pair "abc4")
.set("roles.$.name" pair "6644")
.exec();
user 下面有 roles 集合, 如果使用 Map 报错, 不使用 Map,使用对象集合, 就没有事。 这帮SB,从Map中反射 id 属性, 我添加了 id 属性,也不行。
3. Update 语句中 "id" pair String值, Java 会把 id 转为 _id , String值会转为 ObjectId
但是子属性就不会!!!
role.id pair String值,就傻傻的报错。
4. 顺序很重要!
db.qRCodeTagInfo.aggregate(
[
{ "$match" : { "corpId" : "58fc10252b3fe46746a93fbe"}}
,
{ "$group" : { "_id" : { "corpId" : "$corpId" , "createBy" : "$createBy" , "action" : "$action" , "tag" : "$tag"}}}
] )
$match 写在前面, 说明,先进行查询。
$match 写在后面, 说明,后执行过滤。 写在后面时,要写为:
{ "$match" : { "_id.corpId" : "58fc10252b3fe46746a93fbe"}}
否则找不到 corpId , 因为返回的结果只有一个 _id列, 其它是聚合列。
mongo java 踩坑记的更多相关文章
- java踩坑记
1.String 相等 稍微有点经验的程序员都会用equals比较而不是用 ==,但用equals就真的安全了吗,看下面的代码 user.getName().equals("xiaoming ...
- deno+mongo实战踩坑记
自从 deno 1.0 发布以来,有关 deno 的文章很多,大多数都是在讨论怎么安装 deno .deno 有哪些特点 .deno 和 node 有哪些异同.deno是不是 node 的替代品等.咱 ...
- Java踩坑记系列之Arrays.AsList
java.util.Arrays的asList方法可以方便的将数组转化为集合,我们平时开发在初始化ArrayList时使用的比较多,可以简化代码,但这个静态方法asList()有几个坑需要注意: 一. ...
- Spark踩坑记——Spark Streaming+Kafka
[TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...
- Spark踩坑记——数据库(Hbase+Mysql)
[TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...
- 【踩坑记】从HybridApp到ReactNative
前言 随着移动互联网的兴起,Webapp开始大行其道.大概在15年下半年的时候我接触到了HybridApp.因为当时还没毕业嘛,所以并不清楚自己未来的方向,所以就投入了HybridApp的怀抱. Hy ...
- Spark踩坑记——共享变量
[TOC] 前言 Spark踩坑记--初试 Spark踩坑记--数据库(Hbase+Mysql) Spark踩坑记--Spark Streaming+kafka应用及调优 在前面总结的几篇spark踩 ...
- Spark踩坑记——从RDD看集群调度
[TOC] 前言 在Spark的使用中,性能的调优配置过程中,查阅了很多资料,之前自己总结过两篇小博文Spark踩坑记--初试和Spark踩坑记--数据库(Hbase+Mysql),第一篇概况的归纳了 ...
- [转]Spark 踩坑记:数据库(Hbase+Mysql)
https://cloud.tencent.com/developer/article/1004820 Spark 踩坑记:数据库(Hbase+Mysql) 前言 在使用Spark Streaming ...
随机推荐
- 动态、静态编译以及MD、MDd、MT、MTd编译
本文转自:https://blog.csdn.net/u012273127/article/details/71419499 一.问题的引出 最近在VS2012中新建了一个MFC的工程,在自己电脑上运 ...
- python基本数据类型 数字 和 字符串
一.数字 int type可以查看数据类型 将字符串转换为数字: a=" b=int(a) print(type(a)) 以十六进制或者八进制或者二进制的形式转换为十进制: num ...
- creo5.0安装教程(图文详解)
PTC公司最近发布了Creo 5.0正式版 ,作为最具其革命性的新一代产品设计软件,其所提供专业的二维和三维设计设计,能帮助企业和公司进行产品生命周期管理(PLM)和制定服务管理解决方案.Creo5. ...
- [ISE 14.7]Fail to Link the designer导致无法仿真问题
一.当前配置 操作系统:WIN 8.1 64位 软件:Xilinx ISE 14.7 二.解决方法 首先,似乎64位的binary都有些问题,所以先把ISE Design Suite 14.7这个快捷 ...
- activiti5.14版本在线流程设计器的国际化中文支持
参考了前辈的一些国际化支持做法,加上自己对流程的一些理解,做了activiti5.14版本的国际化支持.发现有若干bug,比如属性设置弹出窗口里的grid里的下拉列表不支持显示中文(要修改oryx.d ...
- 如何在sublime编辑器中,执行命令行脚本
我有个愿意,在执行命令行时,不打开那个黑乎乎命令行窗口,如果编辑器内置支持就好了. 打开vs code 和 sublime,分别按快捷键 Ctrl + ·(tab键上面那个键),vs code可以提供 ...
- 路由器不重启,是否ip就永远不变
今天发现公司的公网ip突然变了,没有人去动过路由器怎么会这样呢?经查原因如下:1.不一定,IP变化是每一次拨号重新获取的.2.路由器重启了,会自动拨号,获得IP3.但如果说因各种原因,掉线,路由器也会 ...
- (二 -2) 天猫精灵接入Home Assistant-自动发现Mqtt设备
参考中文教程: https://www.hachina.io/docs/7230.html 英文官网 两个温度传感器:https://www.home-assistant.io/docs/mqtt/ ...
- Blinker 后台数据分析
如何解析出后台服务器认证信息,供自己的设备连接. 测试程序 天气 增加了 Debug输出信息功能 1手机APP添加控件信息 2硬件烧录程序 #define BLINKER_PRINT Serial ...
- 分布式爬虫之elasticsearch基础6(bluk)
上篇文章介绍了在es里面批量读取数据的方法mget,本篇我们来看下关于批量写入的方法bulk. bulk api可以在单个请求中一次执行多个索引或者删除操作,使用这种方式可以极大的提升索引性能. bu ...