mongodb基础知识-内嵌文档相关
2016-12-13 18:39
232 查看
在mongodb中字段的值,可以是基本数据类型,也可是是文档类型。这样的话,如果要在内嵌文档中查询,可能需要对内嵌文档的字段建立索引。下面列出一些内嵌文档上的常用操作。
1. 内嵌文档单个字段建立索引
// 假设单个文档结构如下 { "_id": ObjectId("570c04a4ad233577f97dc459"), "score": 1034, "location": { state: "NY", city: "New York" } } // 对location的state字段建立索引 db.records.createIndex( { "location.state": 1 } ) // 这两个查询都可以用到state的索引 db.records.find( { "location.state": "CA" } ) db.records.find( { "location.city": "Albany", "location.state": "NY" } )
2. 内嵌文档精确匹配查询 基本的语法就是:fieldName: {field1: <value>,...},这种查询的返回的结果满足:内嵌文档只包含查询的字段、内嵌文档字段相应的值完全匹配、内嵌文档字段的顺序和查询中字段的顺序一致。
// 查询语句 db.bios.find( { name: { first: "Yukihiro", last: "Matsumoto" } } ) // 下面这两种不会被匹配到 一种是字段个数不一致 一种是字段顺序不一致 { first: "Yukihiro", aka: "Matz", last: "Matsumoto" } { last: "Matsumoto", first: "Yukihiro" }
3. 内嵌文档部分字段查询 上面的精确匹配太过严格,这样就要用到部分字段查询, 也就是只要查询的字段和值都匹配就返回,不管查询字段的顺序和内嵌文档的字段个数。
// 内嵌文档部分字段查询 db.bios.find( { "name.first": "Yukihiro", "name.last": "Matsumoto" } ) // 下面这两种结构也可以被查询出来 { first: "Yukihiro", aka: "Matz", last: "Matsumoto" } { last: "Matsumoto", first: "Yukihiro" }
阅读更多
相关文章推荐
- mongodb基础知识-内嵌数组相关
- mongodb的基础知识和增删改查相关操作
- 【知识小课堂】 mongodb 之字段中的【 数组】、【内嵌文档】
- OC相关基础知识2
- 在VB.NET中对于多维数组相关基础知识
- 硬件相关基础知识0(EEPROM和flash的区别)
- 分布式中型文档存储系统MongoDB基础概念
- asch相关的linux基础知识分享
- JAVA相关基础知识(转载)
- JAVA相关基础知识---1
- 图形处理中关于三角形的相关基础知识
- 1.基础知识相关好帖(持续更新)
- MongoDB基础知识 02
- Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB
- 7_Linux基础知识及命令――――Linux的目录结构及相关命令
- Data的基础知识(javaapi文档)
- 与网络相关的基础知识
- MVC 使用cshtml的一些基础知识-和相关整理
- java相关基础知识
- 【搜索引擎基础知识3】搜索引擎相关开源项目及网站