MongoDB 的 python sdk“PyMongo”允许“投影”,其中仅从对象返回指定的字段。在 Realm 中可以这样做吗?我正在研究应用程序的规范,但无法找到有关 Realm 中投影的任何文档。
答案是“否”和“是”。
否:
领域查询始终将领域对象作为完整对象返回。不存在仅返回一个或多个字段的 Realm SDK 接口。例如(在 Swift 中)
let results = realm.objects(Person.self)
将返回所有 Person 对象作为完整对象。然后可以读取这些对象,然后在写入事务中对其进行操作 - 并且可以更改对象内的任何属性。让我们更新结果中第一个 Person 对象的名称:
let firstPerson = results.first!
try! realm.write {
firstPerson.name = "Jay"
}
是的:
SDK 提供应用服务。应用程序服务在“较低”或“更原始”的级别上工作。不同之处在于应用程序服务与文档一起使用 - 就像您在 PyMongo 中看到的那样。
项目文档字段允许该功能仅返回文档中的特定字段,我相信这是所询问的。
以下省略了 Persons _id 字段,但包含 name 字段
let person: [Document] = ["$project": ["_id": 0, "name": 1]]
0 = exclude the field
1 = include the field