Mongo 索引

mongo3.2 数组索引作为联合索引的一部分导致的范围查询问题 摘要在mongo索引一文中有介绍过mongo数组索引,这边主要介绍在mongo3.2中遇到的一个将array字段作为一个联合索引的字段,然后进行非array字段的范围查询遇到的问题。问题post collection{ "_id" : ObjectId("5972c7b0a98a215bd51b9f9a"), "son" : [ 1, 2 阅读详情
  • 单键索引

> db.test.getIndexes();
[
	{
		"v" : 1,
		"key" : {
			"_id" : 1
		},
		"name" : "_id_",
		"ns" : "mydemo.test"
	}
]

  • 多键索引 他的值具有多个记录 例如数组

  • 复合索引

> db.inventory.ensureIndex({type:1,item:1})
> db.inventory.find({type:"food",item:"eee"}).explain()

  • 过期索引: 一段时间后会过期的索引,在索引过期后,相应的数据会被删除

db.test3.insert({time:new Date()})
db.test3.insert({time:new Date()})
db.test3.ensureIndex({time:1},{expireAfterSeconds:30})
db.test3.insert({time:new Date()})
db.test3.insert({time:new Date()})
db.test3.find()
{ "_id" : ObjectId("5ddf7c57892bb00478875228"), "time" : ISODate("2019-11-28T07:50:47.629Z") }
{ "_id" : ObjectId("5ddf7c59892bb00478875229"), "time" : ISODate("2019-11-28T07:50:49.286Z") }
{ "_id" : ObjectId("5ddf7c7a892bb0047887522a"), "time" : ISODate("2019-11-28T07:51:22.608Z") }
{ "_id" : ObjectId("5ddf7c7b892bb0047887522b"), "time" : ISODate("2019-11-28T07:51:23.562Z") }

> db.test3.find()

  • 全文索引:每个数据集合只能创建一个全文索引

> db.test5.insert({_id:1,info:'1 2 3'})
WriteResult({ "nInserted" : 1 })
> db.test5.insert({_id:2,info:"3 4 5"})
WriteResult({ "nInserted" : 1 })
> db.test5.ensureIndex({'info':'text'})
{
	"createdCollectionAutomatically" : false,
	"numIndexesBefore" : 1,
	"numIndexesAfter" : 2,
	"ok" : 1
}
> db.test5.find({$text:{$search:"1"}})
{ "_id" : 1, "info" : "1 2 3" }
> db.test5.find({$text:{$search:"3"}})
{ "_id" : 1, "info" : "1 2 3" }
{ "_id" : 2, "info" : "3 4 5"

  • 地理位置索引

2D平面索引
2DSphere球面索引

db.test6.insert({w : [10, 10]});
db.test6.insert({w : [11, 10]});
db.test6.insert({w : [10, 11]});
db.test6.insert({w : [12, 15]});
db.test6.insert({w : [16, 17]});
db.test6.insert({w : [90, 90]});
db.test6.insert({w : [150, 160]});
db.test6.createIndex({"w" : "2d"}) 

$near" 查询:查询距离某个点最近的坐标点
"$geoWithin" 查询:查询某个形状内的点

db.test6.find({w : {"$near" : [11, 11]}}) 

#查询范围最大是5数据
 db.test6.find({w : {"$near" : [11, 11], "$maxDistance" : 5}})

#查询矩形
db.test6.find({w:{"$geoWithin" : {"$box" : [[9, 9], [11, 11]]}}})
#查询圆形
 db.test6.find({w:{"$geoWithin": {"$center" : [[10, 10], 2]}}})

mongo索引中的顺序 我们在使用mongo中可能并未使用排序,但在查询出来数据自动排好序了,或者我们需要使用mongo的自动排序完成一些功能。 1、当无索引的情况下的查询 db.mongoTest2.find({"valueStr2":"nihao2"}); 2、创建索引 db.mongoTest2.ensureIndex({ "valueStr2" : 1, "time" : -1 }, {"name" : "test3_index"}, {"background" : true }); 3、使用索引后的排序 db 阅读详情

相关推荐

mongo中的索引

一、mongo中的索引 为什么需要索引? 当你抱怨MongoDB集合查询效率低的时候,可能你就需要考虑使用索引了,为了方便后续介绍,先科普下MongoDB里的索引机制(同样适用于其他的数据库比如mysql)。 mongo-9552:PRIMARY> db.person.find() { "_id" : ObjectId("571b5da31b0d530a03b3ce82"), "name" : "jack", "age" : 19 } { "_id" : ObjectId("571b5dae1

GengJL 3915

java mongodb 索引_MongoDB 全文检索

MongoDB 全文检索全文检索对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。MongoDB 从 2.4 版本开始支持全文检索,目前支持15种语言(暂时不支持中文)的全文索引。danishdutchenglishfinnishfrenchgermanhu...

weixin_36059505的博客 499

Rockchip rv1126平台在gstreamer1中添加OpenCv实现视频流负片的效果

rv1126 gstreamer opencv negetive effect

Aisy_D的专栏 1464

03.mongodb与java配合使用

6.涵盖查询(了解)第二个括号是也是查询的条件(投影project), 直接在投影写的结果找,不去本表找,(投影直接有我对应的数据)//高性能,使用springdata-monogo提供的工具Query,只执行一次。3.启动 启动类,看是否连接成功 日志有connention to代表成功;5.执行计划(查看耗费时间,索引是否生效)//低性能,先得到原始数据后修改他,保存。9.根据上级id查询文章评论的分页列表。1.索引(先查索引后后查真实的数据)8.springboot项目搭建。

weixin_47039303的博客 827

管道机器人手臂机械结构设计cad【8张】+三维图+设计说明书+绛重

履带式管道机器人适用于各种管道环境,包括直管道、弯曲管道、水平管道、垂直管道等,其灵活性和适应性使得它可以应对不同形状和尺寸的管道,完成全面的检测和维护工作。管道机器人研究具有重要的现实意义和深远的社会影响,通过提高工作效率、降低人员风险、提升服务质量、节约成本资源和促进科技创新等方面的作用,为现代工程技术领域的发展和进步做出了积极的贡献。管道机器人是一种能够在管道内部执行各种任务的智能机器人,而管道机器人的机械臂对于管道机器人在管道内执行任务的灵活性、稳定性和效率至关重要。

kejigongjiang的博客 944

单像素成像技术原理与Matlab仿真实现

傅里叶变换是数字图像处理的核心数学工具,它将图像从空间域转换到频率域表示。基于傅里叶频谱分析的成像技术通过采集关键频率分量实现图像重建,这种原理催生了单像素成像这一创新技术。单像素成像利用空间光调制器和单个探测器直接测量傅里叶系数,结合压缩感知算法实现高效成像,在红外、太赫兹等特殊波段展现出独特优势。通过Matlab仿真可以验证傅里叶基测量矩阵的构建、压缩感知重建等关键技术环节,为实际系统开发提供理论基础。该技术在弱光环境成像、显微观测等领域具有重要应用价值,其低成本特性也大大降低了特殊波段成像的门槛。

weixin_29061425的博客 345

java 实体类创建mongo 唯一索引

好的,为了在Java实体类中创建MongoDB唯一索引,您可以使用@Index注解。 例如,如果您有一个名为User的实体类,并且希望在username字段上创建唯一索引,则可以这样做: import org.springframework.data.mongodb.core.index.Indexed; public class User { @Indexed(unique = tru...

weixin_35750747的博客 880

Dify平台+Excel批量分析实战:5分钟搞定大模型数据处理(附完整代码)

本文详细介绍了如何利用Dify平台的数据集功能,结合Excel和Python脚本,快速构建大模型批量数据处理流水线。通过实战案例演示,读者可在5分钟内完成客户反馈情感分析、产品文案生成等任务,实现从原始数据到结构化洞察的高效转化,极大提升工作效率。

3a9bq4r8t2y的博客 316

获取mongodb的所有索引

【代码】获取mongodb的所有索引。

vs434245900的专栏 960

ThingsBoard实战指南:RPC命令下发与设备交互详解

本文深入解析了ThingsBoard平台中RPC命令下发的核心机制与实战应用。通过对比客户端与服务端RPC模式,详细阐述了从仪表盘控件配置到设备端Python代码响应的完整双向交互流程,并提供了常见问题排查与进阶优化技巧,帮助开发者构建可靠、实时的物联网设备控制系统。

weixin_29168153的博客 213

基于STM32+4G模块设计的智能灌溉系统

当前智能灌溉系统分为三个部分:温湿度采集部分、灌溉系统部分、OneNet云平台。 灌溉系统部分增加刷卡功能,用户可以通过IC卡刷卡将金额刷到灌溉系统设备里,灌溉系统设备里会记录金额,并且在手机可视化页面上会显示当前的设备金额。 金额会随着时间进行递减,按分钟计费,如果计费到0,就无法启动灌溉,需要重新充值金额才能继续。

4515

mongo索引

不同于MySQL的索引,mongo的索引是有方向的,value代表了索引的方向,这个特性在排序的使用很好用。就能查看是否使用了索引,以及其他的一些详细信息,包括,使用的索引,扫描的文档数据,结果的数量,查询用时等等。如此我们就建立了一个唯一索引,当然类似MySQL的联合唯一索引mongo也是有的,只需要指定多个字段即可。索引好用,但是切记复合索引是有顺序排列的,如果将查询字段顺序写错,是不会使用索引的哈!需要注意的是,如果集合中包含多个待索引字段是数组,则无法创建复合多键索引。...

乾复道 4663

【Bug已解决】codex file edit fails / Write operation denied — CodeX CLI 文件编辑失败解决方案

CodeX CLI 编辑文件时报写入被拒绝,本质是沙箱限制或权限不足。文中给出配置允许目录、修复权限、Git stash 管理冲突等完整方案。

一键难忘的博客 4303

mongo索引性能

mongo索引性能 标签(空格分隔): mongo https://www.cnblogs.com/c-abc/p/6023824.html 测试mongo索引性能 有索引,每个值都是唯一值 "executionStats" : { "executionSuccess" : true, "nReturned" : 1, ...

jiangzhenkang的博客 737

对偶分解算法详解及其Python实现

对偶分解算法是一种广泛应用于求解凸优化问题的有效方法,尤其在大规模数据处理和分布式计算中展现出强大的实用性。在许多实际应用中,直接求解原始问题可能由于计算复杂度过高、资源受限或问题规模过大而变得不可行。这时,对偶分解方法为我们提供了一种高效的替代方案。对偶分解算法的核心思想是将复杂的原问题转化为其对应的拉格朗日对偶问题。通过引入拉格朗日乘子并构造对偶函数,该方法在一定程度上简化了问题的求解过程。特别是,对于包含多个约束条件的大规模优化问题,对偶分解可以将原问题分解为若干个小规模、相互独立的子问题。

闲人编程的博客 1754

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Mongo索引

输出结果如下。

weixin_45541397的博客 1004

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

mongo -索引操作

db.getCollection("ny_room_browse_record").createIndex({wechat_user_space_id:1}, {background: true}); db.getCollection("ny_room_browse_record").createIndex({room_id:1}, {background: true}); db.getCollection("ny_room_browse_record").getIndexes(); db.getCo

minihuabei的博客 240

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

mongo 创建索引

三种方式: 方式一:使用可视化工具Robo 3T 创建 右键 选择add index 添加索引 如下图: 方式二: 脚本创建: db.test.createindex({"phone":1}) 方式三: 使用代码创建: db.collection.indexs().create({}) //两个字段关联 ,创建唯一索引 _, err = mongoCl...

个人的工作随笔和日记,主要作为一个记录风向平台 1951

mongo之查询、创建、删除索引

【代码】mongo之查询、创建、删除索引。

u014642921的博客 201

mongo更新数组字段_Mongo数组字段查询与索引

mongo的查询可以深入数组。常见的数组字段有如下两种形式:{ '_id': 1, 'vec': [2, 4, 8], 'vec_doc': [{'a': 1, 'b': 4}, {'a': 5, 'b': 9}] } { '_id': 2, 'vec': [4, 5], 'vec_doc': [{'a': 2, 'b': 3}, {'a': 6, 'b': 9}] }对v...

weixin_42723849的博客 277

mongo 索引状态

db.member.aggregate([ { $indexStats: {} } ])

积跬步至千里 323

mongo-索引的使用

WRY的博客 144

Mongo中通过数据文件定位索引名称

Mongo集群中有一个节点报坏块,然后实例直接挂掉,日志中显示部分数据文件读取错误,考虑重建数据文件对应的索引。下面的脚本可以遍历库中所有的集合及索引,并打印索引的文件名称。

u014650965的博客 312

golang 使用mongo-go-dirver创建TTL索引, 过期自动删除数据

数据库:test_db, 数据表 test_table: id content expire_date 1 Good luck 2019-03-01 08:14:58.000 2 Good luck 2019-03-02 08:14:58.000 3 Good l...

sky_terra的专栏 3013

spring——基于mongo的二维索引实现附近的人

    最近我们项目中增加了附近的人功能,如果单从实现上考虑其实没有什么难度,采集用户的经纬度坐标,然后用户调用接口去查询附近的人,根据用户的当前坐标去db里一个一个算距离,如果我们用户数就几十几百个,可能每次调接口的时候去算,也能够接受,但是如果你有几百万甚至上亿用户,用户每次来获取附近的人,你就把所有的人的坐标和当前距离算一遍,再排个序,肯定炸了。经过研究发现,现有的一些app,比如微信,陌陌等都是有附近的人这个功能的,而这种空间距离计算,其实都是基于geohash这个算法。     我们都知道在一位数

qq_30095631的博客 426
上一篇: Redis 大Key 分析统计
下一篇: Mongo 3.2.11 单机安装
取壳羊
博客等级 码龄15年 5粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值