小编Mic*_*sło的帖子

RavenDB 查询元数据

我想防止在我的项目中删除文档,我决定使用元数据将文档标记为已存档。我用下面的代码来做到这一点:

public class DeleteDocumentListener : IDocumentDeleteListener
{
    public void BeforeDelete(string key, object entityInstance, RavenJObject metadata)
    {
        metadata.Add("Archived", true);
        throw new NotSupportedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

之后,我想更改查询以仅返回存档元数据值设置为 false 的文档:

using (var session = _store.OpenSession())
{
   var query = session.Advanced.DocumentQuery<Cutter>()
                .WhereEquals("@metadata.Archived", false);
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,此查询返回空结果集。如果 Document 没有此元数据属性,则上述条件将被视为 false。这不是我所期望的。

如何编写查询以返回没有元数据属性或此属性具有某些值的文档?

ravendb

2
推荐指数
1
解决办法
775
查看次数

标签 统计

ravendb ×1