MongoDB 语法陷阱(转自51CTO)
1. 哈希对象中key的顺序
比如,你要存储一个简单的文字对象::
- > db.books.insert({ title: "Woe from Wit", meta: { author: "A. Griboyedov", year: 1823 } });
太棒了!现在我们有了一条书籍记录。再比如,以后我们会想找所有1823年出版的作者是 A. Griboyedov 的书。这里不太可能返回多个结果,但至少应该有《 Woe from Wit 》这本书,因为我们刚刚插入了这条记录,对不对?
- > db.books.find({ meta: { year: 1823, author: "A. Griboyedov" } });
- < No results returned
发生了什么?我们不是刚刚插入了这本书的数据吗?让我们尝试调换key的顺序:
- > db.books.find({ meta: { author: "A. Griboyedov", year: 1823 } });
- < { _id: ..., title: "Woe from Wit", meta: { ... } }
搞定了!
陷阱: 在MongoDB中key的顺序非常重要,{ a: 1, b: 2 } 和 { b: 2, a: 1 }是不匹配的。
为什么: MongoDB使用叫做BSON的二进制数据格式。在BSON中key的顺序非常重要。注意,JSON对象是一个无序的键/值对集合。
原文:http://developer.51cto.com/art/201402/428716.htm
转载于:https://www.cnblogs.com/jghdream/p/3545423.html
MongoDB 语法陷阱(转自51CTO)相关推荐
- mongodb语法与spring实现
mongodb语法 参考文档:https://docs.mongodb.com/manual/reference/ BSON Types BSON Type有2种标识符,整形和字符串 类型 数值 字符 ...
- MongoDB语法学习
MongoDB语法学习 MongoDB官方文档 mongodb语法有很多,如多列索引,查询时可以统计函数,支持多条件查询,但是目前对于多表的查询是暂不支持的,但是可以通过数据冗余来解决多表查询的问题. ...
- MongoDB语法与现有关系型数据库SQL语法比较
MongoDB语法与现有关系型数据库SQL语法比较 MongoDB语法 MySql语法 db.test.find({'name':'foobar'}) select * from test where ...
- 2_Syntactic Pitfalls 语法陷阱
第二章: 语法陷阱 2.1 Understanding function declarations: (函数声明) 1. ...
- 《C陷阱与缺陷》----第二章 语法陷阱
第二章 语法陷阱 2.1 理解函数声明 2.1.1 如何理解函数声明 2.1.2 举例理解声明 2.1.2.1 例子1 2.1.2.2 例子2 2.2 运算符的优先级 2.2.1 常见错例 2.2.1 ...
- C陷阱与缺陷(一)词法“陷阱”、语法“陷阱”
第一章 :词法"陷阱" 术语"符号"指的是程序的一个基本组成单元(就像一个句子中的单词,无论在哪个句子中,表达意思都一样),而组成符号的字符序列就不同,同一组字 ...
- python操作mongodb语法_python 操作MongoDB
安装MongoDB 启动数据库:安装完成指定数据库存放路径 mongod.exe --dbpath c:\data\db 进入目录后运行mongo.exe 成功 创建数据库 >use mydb ...
- MongoDB语法案例
文章目录 基本语法 基本查询 1. find 聚合查询 案例1. 类似not in的实现 基本语法 mongoDB 聚合查询语法,这些命令均在 Aggregation 中实现 $project:修改输 ...
- C陷阱与缺陷代码分析之第2章语法陷阱
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 陷阱1 理解函数声明 作者提出一个问题:有一个首地址为0的函数,该函数返回值类型为void,没有参数.怎样用C语言的 ...
最新文章
- PingCode入选36氪「WISE 2021新经济之王」年度硬核、新势力企业
- HTML DOM Table 对象
- 互联网协议入门(二)
- 均分纸牌pascal程序
- Vue 学习第五天 学习笔记
- python面试应急5分钟_Python面试必须要看的15个问题
- python递归求5!_用Python解数独[6]:递归获得最终答案
- css字体自定义,bootstrap自定义字体
- 厄米高斯光束 matlab,拉盖尔高斯光束_厄米高斯光束MATLAB仿真
- MVC中 数据底层联合JQUERY实现动态的安全的验证机制
- Vmware workstation 安装解压 vmwaretools 提示只读文件
- 教职工使用计算机管理制度,教师配置笔记本电脑管理办法
- php下一页的代码,php 实现文章上一页与下一页 代码
- JSON 格式化成视图模式
- linux 向日葵教程,远程控制工具——Centos7上向日葵安装使用(转)
- linux脚本while死循环,shell编程之while死循环
- [Luogu P3164] [BZOJ 3503] [CQOI2014]和谐矩阵
- 实现页面的图文混排布局(Web作业)
- python爬取问卷星内容,Python 问卷星自动填写 爬虫
- 控制科学与工程学科简介
热门文章
- LeetCode 1564. 把箱子放进仓库里 I(排序)
- 流式计算的代表:Storm、Flink、Spark Streaming
- LeetCode 1548. The Most Similar Path in a Graph(动态规划)
- seaborn绘图入门1(lineplot+barplot+heatmap+scatterplot)
- LeetCode 146. LRU缓存机制(哈希链表)
- LeetCode 32. 最长有效括号(栈DP)
- python那些事儿编程技巧_python一些编程技巧(持续更新)
- 系统总结vue组件间通信、数据传递(父子组件,同级组件)
- Allen AI提出MERLOT,视频理解领域新SOTA!
- 论文小综 | 知识图谱中的复杂查询问答