# MongoDB学习笔记(持续更新)
启动mongo服务
sodo mongo
显示数据库(显示数据库名称和大小,单位GB)
> show dbs
admin (empty)
local 0.078GB
test 0.078GB
testdb 0.078GB
选择数据库,以test数据库为例
use testdb
创建集合
>db.createCollection('loc')
显示集合
show collections
mongo支持的数据类型(15种,带*的5种的为BSON格式)
String、Integer、Boolean、Double、Min/Max keys(BSON中的最低和最高值对比)、Arrays、Timestamp、Object、Null、Symbol(与Sting相同,用于保存特定符号类型)、Date、ObjectID(用于存储文档的ID)、Binary data(二进制数据)、Regular expression(二进制表达式)、JavaScriptCode*(JS代码)
MongoDB中的文档ID,_id
自动生成,必须字段,可以使用ObjectId(string<16进制字符串>)指定自己的_id值,类型为12字节BSON格式。组成格式如下:
[0][1][2][3] (前4字节为时间戳)
[4][5][6] (3字节机器码)
[7][8] (2字节进程Id)
[9][10][11] (3字节计数器)
mongoDB创建索引
索引将提高查询速度,但会降低插入和删除速度。所有的索引信息都在数据库system.indexes集合中。
查看已有的索引使用:
db.indexes.find()
查看某个集合中创建的索引使用getIndexes命令:
db.collection.getIndexes()
使用地理空间做索引
mongoDB从1.4版本器对地理位置实现了支持。
1、插入含有地理信息数据
定义点数据, 餐馆位置(经纬度[经, 纬]):
db.restaurants.insert({
name: 'StevenZhu',
loc:{
type:'Point',
coordinates:[52.365895, 39.256781]
}
})
2、插入街道的地理信息,起点和终点
db.streets.insert({
name: "WestStreet",
loc: {
type:'LineString',
coordinates: [[52.36881,4.895632],[52.368756, 4.890021]]
}
})
3、插入区域数据类型,需要保证起点和终点是一致的。
>db.stores.insert({
name: 'SupperMall',
loc: {
type: 'Polygon',
coordinates: [[lo1,la2], [lo2,la2], [lo3, la3], [lo1,la1]]
}
})
4、创建地理信息索引:
>db.restaurants.ensureIndex({loc:'2dsphere'})//参数2dsphere将告诉ensureIndex(),它在索引坐标或地球球体上的其他形式的二维信息。默认情况下ensureIndex将假设提供的是经度和纬度,并默认是从-180到180.可以用min和max做覆盖
>db.restaurants.ensureIndex({loc:'2dsphere'},{min:-500,max:500})
5、查询地理信息数据
>db.resaurants.find({loc:[52.5]})
# MongoDB学习笔记(持续更新)的更多相关文章
- 数据分析之Pandas和Numpy学习笔记(持续更新)<1>
pandas and numpy notebook 最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...
- [读书]10g/11g编程艺术深入体现结构学习笔记(持续更新...)
持续更新...) 第8章 1.在过程性循环中提交更新容易产生ora-01555:snapshot too old错误.P257 (这种情况我觉得应该是在高并发的情况下才会产生) 假设的一个场景是系统一 ...
- Semantic ui 学习笔记 持续更新
这个semantic 更新版本好快~ 首先是代码的标识<code></code> 具体样式就是红框这样的 圈起来代码感觉不错 不过要在semantic.css里在加上如下样式~ ...
- Git学习笔记(持续更新)
1.强制同步为远程的代码 远程仓库回退了commit的情况下(第2条描述之情况),强制同步远程的代码到本地 #更新远程最新的所有代码,但是不merge或者rebase git fetch --all ...
- R语言的学习笔记 (持续更新.....)
1. DATE 处理 1.1 日期格式一个是as.Date(XXX) 和strptime(XXX),前者为Date格式,后者为POSIXlt格式 1.2 用法:as.Date(XXX,"%Y ...
- angularjs1学习笔记--持续更新
angularJS使用的MVC为何不属于二十三种设计模式之一? MVC被GoF (Gang of Four,四人组, <Design Patterns: Elements of Reusable ...
- ggplot2 学习笔记 (持续更新.....)
1. 目前有四种主题 theme_gray(), theme_bw() , theme_minimal(),theme_classic() 2. X轴设置刻度 scale_x_continuous(l ...
- GOF 的23种JAVA常用设计模式 学习笔记 持续更新中。。。。
前言: 设计模式,前人总结下留给后人更好的设计程序,为我们的程序代码提供一种思想与认知,如何去更好的写出优雅的代码,23种设计模式,是时候需要掌握它了. 1.工厂模式 大白话:比如你需要一辆汽车,你无 ...
- MongoDB学习笔记系列
回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...
随机推荐
- GraphViz web版
http://graphviz-dev.appspot.com/ 用来把dot语言的图画出来,很多地方用dot语言来画图,比如doxygen的类关系,gperftools的分析结果等.
- ListControl一细节处理
做VC ListControl的时候发现一个问题,右击菜单的时候,在没有列表数据的空白处也会出现菜单,这可够纠结的,于是用了点方法解决了,希望分享同样不爽的朋友们.代码如下: void CXXXDlg ...
- 用户 'IIS APPPOOL\ExportExcel' 登录失败。
解决了前两个错误,在成功打开项目后,在访问数据库又越到如下错误 “/”应用程序中的服务器错误. 用户 'IIS APPPOOL\ExportExcel' 登录失败. 说明: 执行当前 Web 请求期间 ...
- 【转】深入理解Java内存模型(六)——final
与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问.对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象 ...
- Swift - 34 - 闭包的基础语法
//: Playground - noun: a place where people can play import UIKit // 初始化一个整数数组 var arr = [1, 3, 5, 7 ...
- 2.1 Java I/O简史
Java 1.0 到 1.3 中的 IO 没有而 Java 1.4 中引入的 NIO 有的“改进”:非阻塞IO.缓冲区.通道层.字符集.内存数据.Perl(正则表达式之王): 下一代 I/O-NIO. ...
- 转:内核空间与用户空间数据交换的方式之一 --ioctl(通过字符设备演示)
对于linux而言,内核程序和用户程序分别运行在内核空间和用户空间,要实现两者的数据交换,主要有以下几种方式:系统调用,读写系统文件(procfs,sysfs, seq_file,debugfs等), ...
- HttpCookie
参考 : http://www.cnblogs.com/fish-li/archive/2011/07/03/2096903.html 上文结尾有提到一个说法 4. HttpRequest.Cooki ...
- Largest product in a grid
这个比前面的要复杂点,但找对了规律,还是可以的. 我逻辑思维不强,只好画图来数数列的下标了. 分四次计算,存入最大值. 左右一次,上下一次,左斜一次,右斜一次. In the 2020 grid be ...
- PCB敷铜小结
有人说加大敷铜可以加大散热面,其实,对于此我不以为然.我说过铜是一种散热吸热快的金属,如果加大散热面要靠加大敷铜的面积的话,那就没有必要给很多的器件加热片了,我想大家对于计算机都颇有心得,一定攒过电脑 ...