# 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没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...
随机推荐
- int? 类型数据
在数据库操作中,会遇到在int的单元格恰好为NULL值的情况,这个时候我们可以直接判断是否为null然后进行赋值,有人就想那我刚好用一下:?表达式不就好了: ) ? ); 这时候编译器会报错,原因就是 ...
- eclipse 库 library jar包 工程 总结
引用库错误 如果在libraries中发现有小红叉,表明引用库错误 解决办法:在左侧projects中add引用到的库 如:我们的支付库引用了以下三个库 那么需要在projects中add这三个库 ...
- jdbc03 使用servlet实现
<%@page import="cn.bdqn.bean.News"%> <%@page import="cn.bdqn.service.impl.Ne ...
- css内容生成器
一,内容生成器:content 补充before和after伪类选择器: 1):将内容添加到某个选择器定义的单个或者多个元素的每一个实例之前或者之后 2)与before选择器配合使用(同理大家想下会不 ...
- Error: theForm.submit is not a function !!
theForm.submit is not a function 调试了半天,才发现范了低级错误. 页面中有一个按钮ID 是 submit 而引发的错误. 引出的问题是页面上的元素命名范围不能是 wi ...
- Android自定义扁平化对话框
平时我们开发的大多数的Android.iOS的APP,它们的风格都是拟物化设计.如今Android 4.X.iOS 7.WP8采用的是扁平化设计,可以看出扁平化设计是未来UI设计的趋势.其实扁平化设计 ...
- JavaScript中的內定物件與函式: arguments, callee, caller, this, apply(), call()
arguments, caller, callee, this都是用在函式(function)內的特殊內定物件.而apply()及call()則是用來呼叫函式的不同作法. arguments可用來取得 ...
- sql 当重复的数据有多条时,保留一条,删除其他重复
delete from proj_info where newcode in (select newcode from proj_info group by newcode hav ...
- PHP浮点数的一个常见问题的解答
作者: Laruence 本文地址: http://www.laruence.com/2013/03/26/2884.html 转载请注明出处 关于PHP的浮点数, 我之前写过一篇文章: 关于PHP浮 ...
- Collection Views and Building Custom Layouts-备
UICollectionView的结构回顾 首先回顾一下Collection View的构成,我们能看到的有三个部分: Cells Supplementary Views 追加视图 (类似Header ...