-
学会MongoDB的搭建查看全部
-
版本version查看全部
-
重要网站查看全部
-
MongoDB的搭建查看全部
-
MongoDB的概念查看全部
-
db.collection.ensureIndex({},{name:""}) db.collection.ensureIndex({},{unique:true/false}) db.collection.ensureIndex({},{sparse:true/false})查看全部
-
mongoDB 相关学习网站查看全部
-
不同数据库的区别主要是存放数据的组织不同,同时提供了不同种类的查询。查看全部
-
>db.location.find({w:{$geoWithin:{$box:[[0,0],[3,3]]}}}) #左边界,右边界,矩形查找 >db.location.find({w:{$geoWithin:{$center:[[0,0],5]}}}) # 圆心,半径,圆形查找 >db.location.find({w:{$geoWithin:{$polygon:[[0,0],[0,1],[2,5],[7,8]]}}}) #多边形查看全部
-
2d和2dsphere可区别为是使用平面距离计算还是使用球面距离计算。 2d平面地理位置索引的创建方式为: >db.collection.ensureIndex({w:"2d"}) #w是字段名 在Mongodb中使用经纬度表示位置,格式[经度,纬度] 取值范围:经度[-180,180]纬度[-90,90] #插入数据 >db.location.insert({w:[1,1]}) >db.location.insert({w:[1,2]}) >db.location.insert({w:[5,6]}) >db.location.insert({w:[200,1]}) #Mongodb会直接报错,经度超出范围 >db.location.insert({w:[180,100]}) #纬度超出范围,Mongodb并没有报错,但是后期查询会出现不可预知的错误。 >db.location.insert({w:[79,76]}) 2d索引的查询方式有两种 (1)$near查询:查询距离某个点最近的点,默认返回100个最近的点 (2)$geoWithin查询:查询某个形状内的点。 a.$near查询 >db.location.find({w:{$near:[1,1]}}) #默认返回100个 可通过$maxDistance来限制查找的最远距离 >db.location.find({w:{$near:[1,1],$maxDistance:10}}) #限制查找最远距离为10 b.$geoWithin查询 形状有三种表示方式 1)$box:矩形,使用{$box:[[<x1>,<y1>],[<x2>,<y2>]]}表示,内部是两个坐标,第一个代表左边界,第二个代表右边界。 2)$center:圆形,使用{$center:[[<x1>,<y1>],r]}表示,内部是圆心位置和半径。 3)$polygon:多边形,使用{$polygon:[[<x1>,<y1>],[<x2>,<y2>],[<x3>,<y3>]]}表示,内部是坐标点,坐标点围成一个多边形。查看全部
-
地理位置索引概念: 将一些点的位置存储在MongoDB中,创建索引后,可以按照位置来查找其他点。 地理位置索引分为两类: 1.2D索引,用于存储和查找平面上的点。 2.2Dsphere索引,用于存储和查找球面上的点。 例如: 查找距离某个点一定距离内的点。 查找包含在某区域内的点。查看全部
-
>db.collection.ensureIndex({},{sparse:true/false}) #指定索引是否稀疏 MongoDB索引默认是不稀疏的。 稀疏性的不同代表了MongoDB在处理索引中存在但是文档中不存在的字段的两种不同的方法。 例如,我们为一个collection的x字段指定了索引,但这个collection中可以插入如{y:1,z:1}这种不存在x字段的数据,如果索引为不稀疏的,mongodb依然会为这个数据创建索引,如果在创建索引时指定为稀疏索引,那么就可以避免这件事情发生了。 >db.imooc_2.insert({"m":1}) >db.imooc_2.insert({"n":1}) 通过$exists可以判断字段是否存在,如 >db.imooc_2.find({m:{$exists:true}}) #筛选出有m字段的文档 给这个文档的m字段创建一个稀疏索引: >db.imooc_2.ensureIndex({m:1},{sparse:true}) 第二条文档不存在m字段,所以不会创建这个索引 如果使用稀疏索引查找不存在稀疏索引字段的文档,mongodb则不会使用这个索引查找 例如: >db.imooc_2.find({m:{$exists:false}}) #可以查到数据 但如果我们通过hint强制使用索引,就不会查到数据了 >db.imooc_2.find({m:{$exists:false}}).hint("m_1") #查不出数据,因为n上并没有m字段的索引查看全部
-
自定义索引名称方式: >db.imooc_2.ensureIndex({x:1,y:1,z:1,m:1},{name:"normal_index"}) 删除索引时,可以通过我们定义的名字来删除索引 >db.imooc_2.dropIndex("normal_index")查看全部
-
1)每次查询只能指定一个$text查询 2)$text查询不能出现在$nor查询中($nor是排除查询) 3)查询中如果包含了$text,hint不再起作用(hint可以强制指定其他索引) 4)MongoDB全文索引还不支持中文查看全部
-
搜索排序,查询结果与你查询条件越相关的越排在前面。 MongoDB中可以使用$meta操作符完成,格式: {score:{$meta: "textScore"}} 在全文搜索的格式中加入这样一个条件,如下: >db.imooc_2.find({$text:{$search:"aa bb"}},{score:{$meta:"textScore"}}) 搜索出的结果会多出一个score字段,这个得分越高,相关度越高。 还可以对查询出的结果根据得分进行排序: >db.imooc_2.find({$text:{$search:"aa bb"}},{score:{$meta:"textScore"}}).sort({score:{$meta:"textScore"}}) 加上.sort方法即可。查看全部
举报
0/150
提交
取消