我有这个结构:
public class User
{
public ObjectId Id { get; set; }
public Location Location { get; set; }
public DateTime LastAround {get;set;}
}
public class Location
{
public double Latitude { get; set; }
public double Longitude { get; set; }
}
我已经尝试了一些事情,但我想更新用户的位置以及他们最后一次出现的时间。
试过这个:
userHelper.Collection.Update(
Query.EQ("_id", userId),
Update.SetWrapped<Location>("Location", new Location { Latitude = latitude, Longitude = longitude }).Set("LastAround", DateTime.UtcNow));
还有这个:
userHelper.Collection.Update(
Query.EQ("_id", userId),
Update.Set("Location.Latitude", latitude)
.Set("Location.Longitude", longitude)
.Set("LastAround", DateTime.UtcNow));
没有任何效果...我该怎么做?
4/17 更新:
userHelper.Collection.Update(
Query.EQ("_id", new ObjectId(userId)),
Update
.SetWrapped<Location>("Location", new Location { Longitude = longitude, Latitude = latitude })
.Set("LastAround", DateTime.UtcNow)
);
在对 lng 和 lat 值进行查询时,它们的值顺序似乎非常重要。我正在做一个 geonear 查询并得到一个奇怪的越界错误。如果您以错误的顺序进行更新,它会将 lats 放在首位,然后您会收到错误消息。