【问题标题】:RavenDB index/query documents where field does not exist字段不存在的 RavenDB 索引/查询文档
【发布时间】:2016-02-11 22:19:54
【问题描述】:

我有一个名为 Message 的文档集合。作为迁移操作的一部分,我正在为迁移的记录设置时间戳,例如

...
new PatchRequest
{
    Type = PatchCommandType.Set,
    Name = "MigratedDateTime",
    Value = DateTime.UtcNow
},
...

我可以在字段 MigratedDateTime, MigratedDateTime:[2016-02-11 TO 2016-02-12] 上创建索引,但我不知道如何查找根本没有设置此字段的文档。这可能吗?如果是这样,lucene 查询会是什么样子?

谢谢

【问题讨论】:

    标签: lucene ravendb


    【解决方案1】:

    您需要定义一个索引,该索引将具有以下内容:

    迁移 = doc.MigratedDateTime != null

    然后就可以查询 Migrated:false

    【讨论】:

    • 谢谢!你能告诉我手术的强度吗?例如。如果有问题的字段可能很大(500kb+),那么计算和/或存储该字段是否为空的索引是否会很昂贵?
    • 很便宜的操作,它只是存储布尔值
    【解决方案2】:

    我知道这是一篇旧帖子,但在 RavenDB 5.0 中你可以这样做

    来自表名 按 MigratedDateTime 分组 其中 MigratedDateTime != null

    不确定它是否更有效地执行,但它更容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多