1. 哈希对象中key的顺序

比如,你要存储一个简单的文字对象::

  1. > db.books.insert({ title: "Woe from Wit", meta: { author: "A. Griboyedov", year: 1823 } });

太棒了!现在我们有了一条书籍记录。再比如,以后我们会想找所有1823年出版的作者是 A. Griboyedov 的书。这里不太可能返回多个结果,但至少应该有《 Woe from Wit 》这本书,因为我们刚刚插入了这条记录,对不对?

  1. > db.books.find({ meta: { year: 1823, author: "A. Griboyedov" } });
  2. < No results returned

发生了什么?我们不是刚刚插入了这本书的数据吗?让我们尝试调换key的顺序:

  1. > db.books.find({ meta: { author: "A. Griboyedov", year: 1823 } });
  2. < { _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)相关推荐

  1. mongodb语法与spring实现

    mongodb语法 参考文档:https://docs.mongodb.com/manual/reference/ BSON Types BSON Type有2种标识符,整形和字符串 类型 数值 字符 ...

  2. MongoDB语法学习

    MongoDB语法学习 MongoDB官方文档 mongodb语法有很多,如多列索引,查询时可以统计函数,支持多条件查询,但是目前对于多表的查询是暂不支持的,但是可以通过数据冗余来解决多表查询的问题. ...

  3. MongoDB语法与现有关系型数据库SQL语法比较

    MongoDB语法与现有关系型数据库SQL语法比较 MongoDB语法 MySql语法 db.test.find({'name':'foobar'}) select * from test where ...

  4. 2_Syntactic Pitfalls 语法陷阱

                                    第二章: 语法陷阱   2.1 Understanding function declarations: (函数声明)       1. ...

  5. 《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 ...

  6. C陷阱与缺陷(一)词法“陷阱”、语法“陷阱”

    第一章 :词法"陷阱" 术语"符号"指的是程序的一个基本组成单元(就像一个句子中的单词,无论在哪个句子中,表达意思都一样),而组成符号的字符序列就不同,同一组字 ...

  7. python操作mongodb语法_python 操作MongoDB

    安装MongoDB 启动数据库:安装完成指定数据库存放路径 mongod.exe --dbpath c:\data\db 进入目录后运行mongo.exe 成功 创建数据库 >use mydb ...

  8. MongoDB语法案例

    文章目录 基本语法 基本查询 1. find 聚合查询 案例1. 类似not in的实现 基本语法 mongoDB 聚合查询语法,这些命令均在 Aggregation 中实现 $project:修改输 ...

  9. C陷阱与缺陷代码分析之第2章语法陷阱

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 陷阱1 理解函数声明 作者提出一个问题:有一个首地址为0的函数,该函数返回值类型为void,没有参数.怎样用C语言的 ...

最新文章

  1. PingCode入选36氪「WISE 2021新经济之王」年度硬核、新势力企业
  2. HTML DOM Table 对象
  3. 互联网协议入门(二)
  4. 均分纸牌pascal程序
  5. Vue 学习第五天 学习笔记
  6. python面试应急5分钟_Python面试必须要看的15个问题
  7. python递归求5!_用Python解数独[6]:递归获得最终答案
  8. css字体自定义,bootstrap自定义字体
  9. 厄米高斯光束 matlab,拉盖尔高斯光束_厄米高斯光束MATLAB仿真
  10. MVC中 数据底层联合JQUERY实现动态的安全的验证机制
  11. Vmware workstation 安装解压 vmwaretools 提示只读文件
  12. 教职工使用计算机管理制度,教师配置笔记本电脑管理办法
  13. php下一页的代码,php 实现文章上一页与下一页 代码
  14. JSON 格式化成视图模式
  15. linux 向日葵教程,远程控制工具——Centos7上向日葵安装使用(转)
  16. linux脚本while死循环,shell编程之while死循环
  17. [Luogu P3164] [BZOJ 3503] [CQOI2014]和谐矩阵
  18. 实现页面的图文混排布局(Web作业)
  19. python爬取问卷星内容,Python 问卷星自动填写 爬虫
  20. 控制科学与工程学科简介

热门文章

  1. LeetCode 1564. 把箱子放进仓库里 I(排序)
  2. 流式计算的代表:Storm、Flink、Spark Streaming
  3. LeetCode 1548. The Most Similar Path in a Graph(动态规划)
  4. seaborn绘图入门1(lineplot+barplot+heatmap+scatterplot)
  5. LeetCode 146. LRU缓存机制(哈希链表)
  6. LeetCode 32. 最长有效括号(栈DP)
  7. python那些事儿编程技巧_python一些编程技巧(持续更新)
  8. 系统总结vue组件间通信、数据传递(父子组件,同级组件)
  9. Allen AI提出MERLOT,视频理解领域新SOTA!
  10. 论文小综 | 知识图谱中的复杂查询问答