Morphia 将字段更新为 int64 而不是 in32
Morphia Upserting Field as int64 instead of in32
我已经使用 Morphia 编写了一个将文档更新插入 Mongo 的操作。
我有一个字段想保存为 int32,但在更新插入后它被插入为 int64。
我已经确保使用 Long.intValue() 将 long 转换为 int 并且 Morphia 序列化回的对象,成员字段是 int。我还检查了 UpdateOperations.ops 以查看吗啡正在升级。
upsert操作为:
UpdateOperations<Test> ops = datastore.createUpdateOperations(Test.class)
.set("test_field", testField.intValue())
我目前使用的Mongo版本是3.0.
如有任何帮助,我们将不胜感激!
谢谢!
编辑:
查看Morphia中的更新查询操作是:
{$set={test_field=11}}
我设法找到了解决方案。 upsert 的查询是在 test_field 上查询 long 而不是 int。 Mongo 3.0 将此视为要插入的类型 - 但是 运行 在 Mongo 3.2 上没有问题,它将使用更新插入操作中指定的类型进行更新,而不是查询。
我已经使用 Morphia 编写了一个将文档更新插入 Mongo 的操作。
我有一个字段想保存为 int32,但在更新插入后它被插入为 int64。
我已经确保使用 Long.intValue() 将 long 转换为 int 并且 Morphia 序列化回的对象,成员字段是 int。我还检查了 UpdateOperations.ops 以查看吗啡正在升级。
upsert操作为:
UpdateOperations<Test> ops = datastore.createUpdateOperations(Test.class)
.set("test_field", testField.intValue())
我目前使用的Mongo版本是3.0.
如有任何帮助,我们将不胜感激!
谢谢!
编辑: 查看Morphia中的更新查询操作是:
{$set={test_field=11}}
我设法找到了解决方案。 upsert 的查询是在 test_field 上查询 long 而不是 int。 Mongo 3.0 将此视为要插入的类型 - 但是 运行 在 Mongo 3.2 上没有问题,它将使用更新插入操作中指定的类型进行更新,而不是查询。