我使用的是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添加到查询时才会出现此错误消息。
答案 0 :(得分:8)
您无需调用ToBson
。已经存在从string
到BsonValue
的隐式转换。使用ToBson
实际上会生成bson,这可能不是您的目标:
BsonArray bArray = new BsonArray();
foreach (var term in termMonitorIds)
{
bArray.Add(term));
}