c# - 如何执行简单的 Couchbase Lite 查询
问题描述
我想知道如何进行一些简单的 CouchbaseLite 查询。
我有一个名为 的文档"test"
,其中包含键值"id": 5
和"name":"My first test"
.
我想搜索以下内容:
- 我想获得名称 =“我的第一个测试”的 id (5)。
- 我还想知道这个名字=“我的第一个测试”条目是否已经可用?如果它不存在,我只想添加它。
Database db = new Database("test_db");
using (var testDoc = new MutableDocument("test"))
{
testDoc.SetInt("id", 5)
.SetString("name", "My first test");
db.Save(testDoc);
}
谢谢!
解决方案
假设我正确理解了您的问题,即您只想获取具有特定属性值的文档(仅当它存在时),您可以执行以下操作
var query = QueryBuilder.Select(SelectResult.expression(Meta.id),
SelectResult.expression(Expression.property("id")))
.From(DataSource.Database(db))
.Where(Expression.Property("name").NotNullOrMissing()
.And(Expression.Property("name").EqualTo(Expression.string("My first test"))))
或者,如果您知道文档的 ID,则使用该 ID 执行GetDocument会更快。获得文档后,对 name 属性执行GetString。如果它返回 null,您可以假设它不存在。
请参阅此处有关 Couchbase Lite 查询基础的文档。这里有几个示例。您可能还想查看NotNullOrMissing上的 API 规范
推荐阅读
- javascript - useEffect 用于在 chrome.storage.local 中的数据更改时更新状态
- c - 使 Motif 选项菜单小部件占据其父级(表单)的整个宽度(拉伸)
- javascript - 使用 laravel sanctum 在 vue 中保存令牌的最佳方法
- javascript - 如何按顺序查找多维数组的组合?
- spring-boot - Jenkins管道片状测试在部署到kubernetes Kafka服务时中断服务
- regex - 在 VSCode 中搜索和替换
- ansible - 我正在调用一个模块,Ansible 仍然抱怨“没有操作”
- javascript - 如何使多个参数为1
- javascript - 可以使用 IoSocket 从我的服务器接收消息 - React Native
- android - 我如何 ProgressBar 圆形和圆角 (Android) Kotlin