设为首页 加入收藏

TOP

MongoDB中空间数据的存储和操作(五)
2014-11-24 03:23:46 来源: 作者: 【 】 浏览:4
Tags:MongoDB 空间 数据 存储 操作
. else
32. {
33. if (coords[k] < ymin) ymin = coords[k];
34. if (coords[k] > ymax) ymax = coords[k];
35. }
36. }
37. //将最大最小值写入Collection
38. var tmpQuery = Query.EQ("_id", id);
39. var tmpUpdate = MongoDB.Driver.Builders.Update.Set("xmax", xmax);
40. var tmpres = col02c.Update(tmpQuery, tmpUpdate);
41. tmpUpdate = MongoDB.Driver.Builders.Update.Set("xmin", xmin);
42. tmpres = col02c.Update(tmpQuery, tmpUpdate);
43. tmpUpdate = MongoDB.Driver.Builders.Update.Set("ymax", ymax);
44. tmpres = col02c.Update(tmpQuery, tmpUpdate);
45. tmpUpdate = MongoDB.Driver.Builders.Update.Set("ymin", ymin);
46. tmpres = col02c.Update(tmpQuery, tmpUpdate);
47. }
48. }
//获取Collection
MongoDatabase db = server.GetDatabase("aa");
MongoCollection colsheng= db.GetCollection("sheng");
//查询所有记录
var cur = colsheng.FindAllAs();
long totalCount = cur.Count();
//遍历所有记录
for (int i = 0; i <= totalCount/1000; i++)
{
if (i * 1000 >= totalCount) continue;
int skip = i * 1000;
var cur2 = cur.Clone().SetSkip(skip).SetLimit(1000);
var lst = cur2.ToArray();
for (int j = 0; j < lst.Count(); j++)
{
//获取一条记录对应的BsonDocument
BsonDocument doc = lst[j];
var id = doc["_id"]; //该记录对应的ID
BsonDocument geo = doc["geo"].ToBsonDocument();
string geostr = geo[1].ToString(); //该记录对应空间信息的Json字符串
List coords = GetCoordLstFromString(geostr); //解析Json串,获得所有点的坐标(这里子函数就省略了)
double xmin = 181, xmax = -181, ymin = 91, ymax = -91; //四个边界值,由于图层为经纬度,所以初值设为这些值
//计算最大最小值
for (int k = 0; k < coords.Count; k++)
{
if (k % 2 == 0)
{
if (coords[k] < xmin) xmin = coords[k];
if (coords[k] > xmax) xmax = coords[k];
}
else
{
if (coords[k] < ymin) ymin = coords[k];
if (coords[k] > ymax) ymax = coords[k];
}
}
//将最大最小值写入Collection
var tmpQuery = Query.EQ("_id", id);
var tmpUpdate = MongoDB.Driver.Builders.Update.Set("xmax", xmax);
var tmpres = col02c.Update(tmpQuery, tmpUpdate);
tmpUpdate = MongoDB.Driver.Builders.Update.Set("xmin", xmin);
tmpres = col02c.Update(tmpQuery, tmpUpdate);
tmpUpdate = MongoDB.Driver.Builders.Update.Set("ymax", ymax);
首页 上一页 2 3 4 5 下一页 尾页 5/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇如何删除表中的重复记录只保留其.. 下一篇SQLite学习手册(表达式)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 C 语言或者限制使 (2025-12-25 08:50:05)
·C++构造shared_ptr为 (2025-12-25 08:50:01)
·既然引用计数在做 GC (2025-12-25 08:49:59)
·Java 编程和 c 语言 (2025-12-25 08:19:48)
·. net内存管理宝典这 (2025-12-25 08:19:46)