我已经使用 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 上运行时没有问题,它将使用更新插入操作中指定的类型进行更新,而不是查询。
关于mongodb - Morphia 将字段更新为 int64 而不是 in32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45552625/