如何在 ravendb 中写入字符串数组索引

how to write string array index in ravendb

我有一个名为 Orders like this 的 ravendb 文档

{
"MyOrders": [
    "S1",
    "S2"
],

"Id": "6666"
}

我将查询此文档并传递订单字符串,例如 S1 然后它应该 return 我那个文件作为 S1 匹配它。我对这个 ravendb 很陌生。我找不到路。到目前为止我只写了这些

   public class MyOrderIndexes: AbstractIndexCreationTask<Order>
{

    public MyOrderIndexes()
    {
        Map = Orders => from Order in Orders
                                 select new
                                             {
                                                 ID= Order.Id
                                             };
        Index(x => x.Id, FieldIndexing.NotAnalyzed);
    }
}

谁能帮帮我

一个问题是 Id 上的 FieldIndexing,还需要映射 MyOrders 才能对其执行查询。

索引:

public class MyOrderIndexes: AbstractIndexCreationTask<Order>
{    
    public MyOrderIndexes()
    {
        Map = Orders => from Order in Orders
                                 select new
                                 {
                                       Id = Order.Id,
                                       MyOrders = Order.MyOrders
                                 };
    }
}

查询:

var results = session
    .Query<Order, MyOrderIndexes>()
    .Where(x => x.MyOrders.Any(l => l == "S1"))
    .ToList();  

型号:

public class Order
{
    public string Id { get; set; }
    public ICollection<string> MyOrders { get; set; }
}

要查询它,您不需要创建索引。只需查询,Raven 将为您创建。

这个查询应该可以正常工作:

var hasS2 = session.Query<Orders>()
   .Where(o => o.MyOrders.Contains("S2"))
   .ToList();