我目前正在尝试构建一个使用C#驱动程序与MongoDB接口的web API。
GET路由使用几个可选参数,这些参数根据请求中的参数动态生成LINQ查询。我遇到的问题是,当通过_id进行筛选时,它总是无法返回数据;这些尝试包括_id.toString()以及简单的_id==id比较。我尝试了几种比较id参数和documentid的方法,但都没有奏效。完全没有where子句,或者按文档中的任何其他字段以任何组合筛选所有返回数据。
这就是代码段当前的样子:
var testId = new ObjectId(id);
var result = collection.AsQueryable<Terrain>()
.Where(t => t._id.Equals(testId))
.Select(t => t);
return Json(result);
这将返回一个空结果[]。我只能假设我误解了id的存储方式,即数据库和这里的查询方式。出于测试目的,我通过从Robo3T中复制_id值来获得参数id的值。