我正在编写一个使用 u1db 作为数据库的 ubuntu touch 应用程序,但在查询和索引方面遇到了麻烦。我正在保存一个带有子字段的文档,但在使用索引和查询的检索点,我无法获得预期的结果。我需要列表显示两行,一行用于帐户“Ahorro”,另一行用于帐户“Corriente”,但只显示一行,即第一行。
谁能帮我?
在这里我发布我的代码:
UbuntuListView {
id: accountListView
anchors.margins: units.gu(2)
anchors.top: accountLabel.bottom
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
model: accountQuery
delegate: ListItem.SingleValue {
text: contents["name"]
progression: true
onClicked: {
print("clicked")
}
}
}
U1db.Database {
id: myMoneyDB
path: "MyMoney.u1db"
}
U1db.Document {
id: accountDocument
database: myMoneyDB
docId: 'account'
create: true
defaults: {
[
{
"name": "Ahorro"
},
{
"name": "Corriente"
}
]
}
}
U1db.Index{
database: myMoneyDB
id: accountIndex
expression: ["account.name"]
}
U1db.Query{
id: accountQuery
index: accountIndex
query: "*"
}
提前致谢。
答案1
您的代码仅向数据库中添加了一条包含两个字段的数据库记录。您必须为每条记录添加一个“U1db.Document()”。
祝你好运。