- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有这样的结构:
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 放在第一位,然后您会收到错误消息。
最佳答案
您的两个原始更新语句都应该有效。我写了一个小示例程序来演示。
执行此 Insert 语句后:
var userId = ObjectId.GenerateNewId();
var user = new User
{
Id = userId,
Location = new Location { Latitude = 1.0, Longitude = 2.0 },
LastAround = new DateTime(2012, 4, 14, 0, 0, 0, DateTimeKind.Utc)
};
collection.Insert(user);
文档在 mongo shell 中看起来像这样:
> db.test.find()
{ "_id" : ObjectId("4f8c5d33e447ad34b8c7ac84"), "Location" : { "Latitude" : 1, "Longitude" : 2 }, "LastAround" : ISODate("2012-04-14T00:00:00Z") }
>
执行第一种形式的 Update 语句后:
collection.Update(
Query.EQ("_id", userId),
Update
.SetWrapped<Location>("Location", new Location { Latitude = 3.0, Longitude = 4.0 })
.Set("LastAround", new DateTime(2012, 4, 15, 0, 0, 0, DateTimeKind.Utc)));
文档看起来像这样:
> db.test.find()
{ "_id" : ObjectId("4f8c5d33e447ad34b8c7ac84"), "Location" : { "Latitude" : 3, "Longitude" : 4 }, "LastAround" : ISODate("2012-04-15T00:00:00Z") }
>
并且在执行了第二种形式的 Update 语句之后:
collection.Update(
Query.EQ("_id", userId),
Update
.Set("Location.Latitude", 5.0)
.Set("Location.Longitude", 6.0)
.Set("LastAround", new DateTime(2012, 4, 16, 0, 0, 0, DateTimeKind.Utc)));
文档看起来像这样:
> db.test.find()
{ "_id" : ObjectId("4f8c5d33e447ad34b8c7ac84"), "Location" : { "Latitude" : 5, "Longitude" : 6 }, "LastAround" : ISODate("2012-04-16T00:00:00Z") }
>
所以更新语句的两种形式都有效。
完整程序在这里:
关于mongodb - 如何使用 10gen c# 驱动程序更新内部属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10158764/
第 0 代:所以我读到当 gen 0 超过大小阈值时 gen 0 触发。但我也读到GC不是在"new"时执行的,因为"new"只是向前滑动一个地址。那么,它什么时候检查它是否超过了触发 gen 0 G
“static final”是直接分配到young gen还是old gen还是perm gen? (我想它很可能会在我想的时间内落入老一代。)如果它在 perm gen 中分配,那么当在 Perm
这是一种情况,当必须将并行性引入后端服务器时。 我愿意查询 N 个 ELB,每个查询 5 个不同的查询,并将结果发送回 Web 客户端。 后端是Tornado,根据我在docs中多次阅读的内容,在过去
我正在尝试创建列表的随机排列。我是函数式语言中随机性的新手,还没有完全掌握 monad,但我以我认为应该有效的方式使用了 Random.newStdGen 和 Random.Shuffle.shuff
经过 tornado.gen documentation有人可以帮我理解 tornado.gen.coroutine 和 tornado.gen.engine 之间的确切区别 最佳答案 正如 gen.
在 document , 如果方法也用@gen.coroutine 修饰,则不需要@web.asynchronous。像这样 @web.asynchronous @gen.coroutine def
我们在带有相量的同一个 gen~ 代码框对象中有两个地方: wander = phasor(in8/dense); ...some code later... phas = (triangle(pha
我正在从事的项目都是用 Tornado 编写的,但我包含了一些 Twisted 来处理异步 XML-RPC。我想知道您是否可以使用 Tornado 的 gen.engine 和 yield gen.T
如何查看protoc-gen-go和protoc-gen-validate的版本? protoc-gen-go --version protoc-gen-validate --version 我试过上
我们使用的是 protoc-gen-go v2(v2 是 google.golang.org/protobuf,v1 是 github.com/golang/protobuf) 当我们尝试编译 gRP
刚接触tornado,所以跟着tornado的指导练习,当我开始使用Coroutines的时候,例子是这样说的: 从 Tornado 导入生成 @gen.coroutine def fetch_cor
当您创建 Python 3 生成器并立即开始运行它时。您会收到如下错误: TypeError: can't send non-None value to a just-started generato
当我在 eclipse 中清理和构建 android 项目时,它会删除 bin 文件夹和 gen 文件夹的内容,并且不会重新创建它只是创建空文件夹 gen 和 bin 为什么会发生这种情况我搜索了很多
我想使用来自 protoc-gen-grpc-kotlin 的 protoc-gen-grpc-kotlin-1.0.0我得到了 Execution failed for task ':generat
我想使用来自 protoc-gen-grpc-kotlin 的 protoc-gen-grpc-kotlin-1.0.0我得到了 Execution failed for task ':generat
在 :constructors 映射和后续的 -init 定义中,我如何表示可变参数构造函数(假设父类(super class)有多个构造函数,其中一个是可变参数)? 最佳答案 由于可变参数本质上是对
我正在使用jwilder/nginx-proxy,以便在我的domain.tld中有一个项目,在api.domain.tld中有一个项目。我关注了this tutorial,自定义default.co
我刚刚重新格式化了我的电脑。我有 windows xp sp3 32 位。我安装java jdk安卓SDK eclipse ide 当我去创建一个新的 android 项目时,我得到了这个错误。 项目
我正在开发我的 Android 项目,删除未使用的库后,我收到 错误: myproject/gen already exists but is not a source folder. Convert
protoc-gen-doc 自定义模板规则详解 配套演示工程 此项目中所用 proto 文件位于 ./proto 目录下,来源于 官方proto示例 此项目中所列所有
我是一名优秀的程序员,十分优秀!