我正在使用MongoDB 2.4.9版本。当我试图将字符串列表转换为bson数组时,出现以下错误:

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

“/”应用程序中的服务器错误。
字符串值不能写入bson文档的根级别。
描述:当前Web请求执行期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源代码的详细信息。
异常详细信息:system.invalidooperationexception:字符串值不能写入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();

值中的结果不能为空。参数名称:name。只有在我向查询添加barray时才会出现此错误消息。

最佳答案

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

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

09-18 19:41