更新了确切的类和&数据
我有一个新版本的文档,其中包含一个新属性:
public class PaperSite
{
public string Title { get; set; }
public string Html { get; set; }
public ParsedPaper ParsedPaper { get; set; } // This is a new property
}
我想查询没有属性集的所有文档(最初,显然都是这些文档)。但是,这样的查询:
docs.Query<PaperSite>.Where( x => x.ParsedPaper == null)
什么都不返回。
Oren暗示使用contains
,所以我创建了以下内容:
from site in docs.PaperSites
where site.Contains("ParsedPaper") == false
select new { PaperSite = site }
然而,这没有任何回报。
在数据库中,我有以下文档(及更多):
PaperSites/34 { "Title": "Paper Site Zero (v0)", "Html": null},
PaperSites/97 { "Title": "Paper Site Three", "Html": "<html></html>", "ParsedPaper": null }
以下索引:
from site in docs.PaperSites
where site.ParsedPaper == null
select new { PaperSite = site }
返回正确的文档(ParsedPaper存在的文档,但为null)
我是否对Contains做错了什么?如何调试这些索引?
答案 0 :(得分:1)
您无法执行此类查询,因为您要求的是具有此属性的所有文档,并将其设置为null。
您可以使用索引执行此操作,例如:
from doc in docs
where doc.Contains("Description") == false
select new { doc.Id }
答案 1 :(得分:1)
使用.Contains("...")
条款中的where
对我来说也不起作用。我能够使用以下索引定义解决我找到缺少属性的文档的问题:
from doc in docs.MyDocType
where(doc.Description == null)
select new { doc.Id }
随后,我现在可以通过UpdateByIndex
使用此索引来运行修复缺失属性的PatchRequest
脚本。