Bson数组中的字符串列表

时间:2014-06-16 16:09:47

标签: c# .net linq mongodb mongodb-.net-driver

我使用的是MongoDb 2.4.9版本。当我尝试将字符串列表转换为Bson数组时,我最终得到以下错误:

BsonArray bArray = new BsonArray();
foreach (var term in termMonitorIds)
{
    bArray.Add(term.ToBson());
}
  

' /'中的服务器错误应用

     

无法将字符串值写入BSON文档的根级别。

     

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

     

异常详细信息:System.InvalidOperationException:无法将String值写入BSON文档的根级别。

修改

当我在下面的LINQ查询中使用它时:

entities =
                    (from e in this.collection.AsQueryable<SocialRecord>()
                     where sources.Contains(e.SocialType) && (e.DateCreated >= fr) && (e.DateCreated <= to) && e.TermMonitorIds.Any(X=> bArray.Contains(X)) && e.IsExactMatch == isInstagramExactMatch
                     select e)
                    .Take(5000)
                    .ToList();

结果值不能为空。参数名称:名称。仅当我将bArray添加到查询时才会出现此错误消息。

1 个答案:

答案 0 :(得分:8)

您无需调用ToBson。已经存在从stringBsonValue的隐式转换。使用ToBson实际上会生成bson,这可能不是您的目标:

BsonArray bArray = new BsonArray();
foreach (var term in termMonitorIds)
{
    bArray.Add(term));
}