更新了确切的类和数据
我有一个具有新属性的新版本文档:
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 存在但为空的文档)
我对 Contains 做错了什么吗?如何调试这些索引?
最佳答案
您不能执行这样的查询,因为您要求的是所有具有此属性的文档,并将其设置为 null。
您可以使用索引来做到这一点,例如:
from doc in docs
where doc.Contains("Description") == false
select new { doc.Id }
关于linq - 如何根据属性是否存在来查询 RavenDb 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9714027/