我正在使用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
。已经有一个从string
到BsonValue
的隐式转换。使用ToBson
实际上会生成bson,这可能不是您的目标:
BsonArray bArray = new BsonArray();
foreach (var term in termMonitorIds)
{
bArray.Add(term));
}