【发布时间】:2020-07-27 06:44:59
【问题描述】:
我想从 Raven DB 数据库中提取 Json 属性。我从 Ravendb 工作室从索引中提取它,如下所示。在下面的查询中,参数Body 的类型为json,我想从中提取它的一个字段(比如说field1)。怎么办?
from index 'Selectdata' as message
order by message.ProcessedAt desc
select {
UniqueMessageId: message.UniqueMessageId,
MessageId: message.MessageMetadata.MessageId,
MessageType: message.Headers["EnclosedMessageTypes"],
TimeSent: message.Headers["TimeSent"],
ProcessingStarted: message.Headers["ProcessingStarted"],
ProcessingEnded: message.Headers["ProcessingEnded"],
ProcessingEndpoint: message.Headers["ProcessingEndpoint"],
ProcessedAt : message.ProcessedAt,
Body:message.MessageMetadata.Body //json body
}
【问题讨论】:
-
为什么不在静态索引中索引该字段(field1),以便您可以对其进行查询?
-
@Danielle - 如何对文档参数(正文)的属性进行索引?
-
你能从json主体中提取这个字段(你感兴趣的那个)并将它作为一个属性放在你的实体类中吗?如果是,那么您可以将其编入索引。
-
@Danielle - 不,因为我无法解析为 Json 正文。
-
尝试使用
Search(),它将对“正文”字段属性执行全文搜索。见ravendb.net/docs/article-page/5.0/Csharp/client-api/session/…。注意:首先在索引定义中的'Body'字段上启用全文搜索功能