亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: asp.net的mongodb實(shí)例 [打印本頁(yè)]

作者: danan    時(shí)間: 2015-06-16 17:29
標(biāo)題: asp.net的mongodb實(shí)例
  1. public class MongoNearby
  2.   2     {
  3.   3         private static object objLock = new object();
  4.   4         private static MongoDatabase mongo ;
  5.   5
  6.   6         private static MongoDatabase Instance
  7.   7         {
  8.   8             get
  9.   9             {
  10. 10                 if (mongo == null)
  11. 11                 {
  12. 12                     lock (objLock)//防止多線程構(gòu)造
  13. 13                     {
  14. 14                         string connctionString = "mongodb://192.168.1.x:27017";
  15. 15                         MongoClient client = new MongoClient(connctionString);
  16. 16                         MongoServer server = client.GetServer();
  17. 17                         mongo = server.GetDatabase("nearby");//數(shù)據(jù)庫(kù)
  18. 18                     }
  19. 19                 }
  20. 20                 return mongo;
  21. 21             }
  22. 22         }
  23. 23
  24. 24         /// <summary>
  25. 25         /// 保存記錄
  26. 26         /// </summary>
  27. 27         /// <param name="info"></param>
  28. 28         /// <returns></returns>
  29. 29         public static bool SaveNearby(NearInfo info)
  30. 30         {
  31. 31             if (info == null)
  32. 32                 return false;
  33. 33             try
  34. 34             {
  35. 35                 MongoCollection collection = Instance.GetCollection<NearInfo>("userinfo");
  36. 36                 QueryDocument query = new QueryDocument();
  37. 37                 query.Add("userid", info.userid);
  38. 38                 collection.Remove(query);
  39. 39
  40. 40                 WriteConcernResult result = collection.Insert(info);
  41. 41                 CLog.WriteLog("write:  "+info.ToJson());
  42. 42                 return result.Ok;
  43. 43             }
  44. 44             catch(Exception ex)
  45. 45             {
  46. 46                 CLog.WriteLog(ex.Message+info.ToJson());
  47. 47                 return false;
  48. 48             }
  49. 49         }
  50. 50
  51. 51         /// <summary>
  52. 52         /// 附近用戶
  53. 53         /// </summary>
  54. 54         /// <param name="sex"></param>
  55. 55         /// <param name="longitude"></param>
  56. 56         /// <param name="latitude"></param>
  57. 57         /// <param name="total"></param>
  58. 58         /// <param name="limit"></param>
  59. 59         /// <param name="maxDistance"></param>
  60. 60         /// <returns></returns>
  61. 61         public static List<UserInfo> GetNearbyUser(int myuid,int sex, double longitude, double latitude, ref int total, int limit = 1000, int maxDistance = 50*1000)
  62. 62         {
  63. 63             List<UserInfo> list = null;
  64. 64             try
  65. 65             {
  66. 66                 list = new List<UserInfo>();
  67. 67                 double radius = 6378000;
  68. 68                 MongoCollection<NearInfo> collection = Instance.GetCollection<NearInfo>("userinfo");
  69. 69
  70. 70                 #region 方法2 計(jì)算出了距離
  71. 71                 IMongoQuery query = Query.NE("userid",myuid);
  72. 72                 if (sex ==0 || sex == 1) {
  73. 73                     query =Query.And( Query.NE("sex", 1-sex),Query.NE("userid",myuid));
  74. 74                 }
  75. 75                 GeoNearOptionsBuilder options = GeoNearOptions.SetMaxDistance(maxDistance * 1.0 / radius).SetSpherical(true).SetDistanceMultiplier(radius);
  76. 76                 var result = collection.GeoNear(query, longitude, latitude, limit, options);
  77. 77
  78. 78                 var response = result.Response;
  79. 79                 foreach (var item in response["results"].AsBsonArray)
  80. 80                 {
  81. 81                     BsonDocument bson = item.AsBsonDocument;
  82. 82                     var dis = bson["dis"].AsDouble;//間隔的距離
  83. 83                     var obj = bson["obj"].AsBsonDocument;
  84. 84                     NearInfo info = BsonSerializer.Deserialize<NearInfo>(obj);
  85. 85                     if (info == null)
  86. 86                         continue;
  87. 87
  88. 88                     UserInfo tmp = new UserInfo {
  89. 89                         userid = info.userid,
  90. 90                         dis = dis,
  91. 91                         unick = CUser.GetUserNick(info.userid),
  92. 92                         headimg = CUser.UserHeadImg(info.userid).Facemiddle,
  93. 93                         usign = Getmemo(info.userid),sex=(info.sex ==1?"男":"女")
  94. 94                     };
  95. 95                     list.Add(tmp);
  96. 96                     total++;
  97. 97                     //CLog.WriteLog(info.sex.ToString());
  98. 98                 }
  99. 99                 CLog.WriteLog(myuid+"Read:  "+result.Response.ToJson());
  100. 100                 #endregion
  101. 101                 //CLog.WriteLog(list.ToJson());
  102. 102             }
  103. 103             catch (Exception ex){
  104. 104                 CLog.WriteLog(ex.Message);
  105. 105             }
  106. 106             return list;
  107. 107         }
  108. 108
  109. 109         public static string Getmemo(int userid)
  110. 110         {
  111. 111             string memo = string.Empty;
  112. 112             string _tmp = string.Empty;
  113. 113             int _tmp1 = 0;
  114. 114             CUser.GetUserDetail(userid, out _tmp1, out _tmp, out _tmp1, out _tmp, out _tmp, out memo);
  115. 115             return memo;
  116. 116         }
  117. 117     }
復(fù)制代碼

作者: vcdwill    時(shí)間: 2015-06-26 00:13
有沒(méi)有想到過(guò)原文作者會(huì)出現(xiàn)在這里?
作者: renxiao2003    時(shí)間: 2015-07-08 21:30
這個(gè)似乎是通用的類。和ASP。NET關(guān)系不大吧。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2