`
风雪涟漪
  • 浏览: 496924 次
  • 性别: Icon_minigender_1
  • 来自: 大连->北京
博客专栏
952ab666-b589-3ca9-8be6-3772bb8d36d4
搜索引擎基础(Search...
浏览量:8767
Ae468720-c1b2-3218-bad0-65e2f3d5477e
SEO策略
浏览量:17675
社区版块
存档分类
最新评论

MongoDB Multikeys(多个键)

阅读更多

Multikeys(多个键)

MongoDB提供了 "multikey" 的特性可以自动索引数组每个元素。

一个好的例子就是关于Tagging。假使一篇文章的tag

$ dbshell
> db.articles.save( { name: "Warm Weather", author: "Steve",                       
                      tags: ['weather', 'hot', 'record', 'april'] } )
> db.articles.find(){"name" : "Warm Weather" ,
 "author" : "Steve" ,  "tags" : ["weather","hot","record","april"] , 
"_id" : "497ce4051ca9ca6d3efca323"}

可以很轻松的进行查询。

> db.articles.find( { tags: 'april' } )
{"name" : "Warm Weather" , "author" : "Steve" ,  
"tags" : ["weather","hot","record","april"] , "_id" : 
"497ce4051ca9ca6d3efca323"}

我们可以索引数组. 在数组上创建索引,结果就是数组中每个元素都被索引了。

> db.articles.ensureIndex( { tags : 1 } )
true
> db.articles.find( { tags: 'april' } )
{"name" : "Warm Weather" , "author" : "Steve"
 "tags" : ["weather","hot","record","april"] , "_id" : "497ce4051ca9ca6d3efca323"}
> db.articles.find( { tags: 'april' } ).explain()
{"cursor" : "BtreeCursor tags_1" , "startKey"
{"tags" : "april"} ,  "endKey" : {"tags" : "april"} , 
"nscanned" : 1 , "n" : 1 , "millis" : 0 }

在数组中的嵌入对象

同样的也可以用于数组中的嵌入对象

> db.posts.find( { "comments.author" : "julie" } )
{"title" : "How the west was won" ,  "comments"
[{"text" : "great!" , "author" : "sam"},  
 {"text" : "ok" , "author" : "julie"}], "_id" : "497ce79f1ca9ca6d3efca325"}

在给定的集中查询所有的值

使用$all, 匹配所有给定集中的元素。例子:

> db.articles.find( { tags: { $all: [ 'april', 'record' ] } } )
{"name" : "Warm Weather" , "author" : "Steve" ,  "tags" :
 ["weather","hot","record","april"] , "_id" : "497ce4051ca9ca6d3efca323"}
> db.articles.find( { tags: { $all: [ 'april', 'june' ] } } )
> //不匹配

Parallel Arrays(并行数组)

当使用 compound index, 在任意的document中,

索引的值可以为任意类型,数组也可以。因此如果有个索引在{a: 1, b: 1}。下面的都可以使用这个索引。

{a: [1, 2], b: 1}{a: 1, b: [1, 2]}

然而,当我们插入下面的document。就会报错"cannot index parallel arrays":
{a: [1, 2], b: [1, 2]}

错误原因就是索引了并行数组。在这个组合键的笛卡尔积必须被索引。这难以控制。


分享到:
评论

相关推荐

    win mongodb安装包多个版本下载地址

    windows 版本 mongodb安装包 多个版本安装文件下载地址

    MongoDb多数据中心

    MongoDB multiple Data center,官方推荐的指导文档。

    springboot +mongodb多数据源

    spring.data.primary.mongodb.uri= mongodb://192.168.10.136:27017/eqt #spring.data.secondary.mongodb.uri= mongodb://192.168.10.136:27017/lxyz spring.data.secondary.mongodb.uri= mongodb://192.168.10.138:...

    使用Express与MongoDB 搭建多人博客

    使用Express与MongoDB 搭建多人博客

    Thinkphp使用mongodb数据库实现多条件查询方法

    主要介绍了Thinkphp使用mongodb数据库实现多条件查询方法,修改了mongodb驱动文件来实现复合查询、多条件查询,需要的朋友可以参考下

    MongoDB分片键的选择和案例实例详解

    本文将详细介绍关于MongoDB分片键的选择和案例,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 MongoDB版本:3.6 一、分片键类别 1.升序片键 升序片键例如:日期时间字段、自增字段。 2.随机...

    MongoDB笔记.docx

    3、MongoDB多对多关系型 4 三、创建数据库(mongodb_test) 4 四、MongoDB得增删改查(crud) 4 1、MongoDB查询 4 2、order和投影查询 5 3、MongoDB增加 6 4、MongoDB修改 7 5、MongoDB删除 9 6、MongoDB分页 10 7、...

    Sping boot MongoDB 配置多数据源

    spring boot mongodb 配置多数据源,正式环境中截取出来的代码,亲测有效

    MongoDB(mongodb-org-server_5.0.4_amd64.deb)

    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系...

    MongoDB(mongodb-src-r5.0.4.tar.gz)

    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系...

    MongoDB Community(mongodb-linux-aarch64-ubuntu1804-5.0.8.tgz)

    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系...

    spring-data使用mongodbTemplate对MongoDB进行读写操作

    spring data mongodb的demo程序,参考App.java中的调用方法,mongodb配置文件在resources目录下,整个项目使用maven,适合初学者学习。

    MongoDB应用设计模式

    资源名称:MongoDB应用设计模式内容简介:无论是在构建社交媒体网站,还是在开发一个仅在内部使用的企业应用程序,《MongoDB应用设计模式》展示了MongoDB需要解决的商业问题之间的连接。你将学到如何把MongoDB设计...

    Linux安装mongodb客户端

    sudo vim /etc/yum.repos.d/mongodb-org-4.2.repo 写入: [mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpg...

    Spark-Mongodb是一个库允许用户利用SparkSQL读写数据至MongoDB集合

    Spark-Mongodb是一个库允许用户利用Spark SQL读写数据至MongoDB集合

    如何安装MongoDB 如何使用MongoDB

    本课程是一套关于MongoDB应用开发的实战性教程,名为《深入浅出MongoDB应用实战开发(基础、开发指南、系统管理、集群及系统架构)》,教程侧重于讲解MongoDB的常用特性及高级特性,从实际开发的角度出发对MongoDB...

    MongoDB基本操作指南

    在MongoDB中,不强调一定对数据进行Normalize ,很多场合都建议De-normalize,开发人员可以扔掉传统关系数据库各种范式的限制,不需要把所有的实体都映射为一个Collection,只需定义最顶级的class。MongoDB的文档...

    MongoDB(mongodb-windows-x86_64-5.0.4.zip)

    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系...

    基于MongoDB的日志系统Mongodb-Log.zip

    mongodb-log 是一个基于MongoDB的Python日志系统。 MongoDB 的 Capped Collection是一个天生的日志系统,MongoDB自己的oplog就是用它来存储的,Capped Collection的特点是可以指定Collection的大小,当记录总大小...

    SpringMongodb参考文档.docx

    1.了解Spring ...将存储库与多个Spring Data模块一起使用 7.4。定义查询方法 7.4.1。查询查询策略 7.4.2。查询创建 7.4.3。属性表达式 7.4.4。特殊参数处理 7.4.5。限制查询结果 7.4.6。流式查询结果

Global site tag (gtag.js) - Google Analytics