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