提问者:小点点

MonogDB C#驱动程序LINQ查询按ID筛选时不工作


我目前正在尝试构建一个使用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的值。


共1个答案

匿名用户

  • 请共享您的“地形”模型
  • 请注意,您正在启动一个空的testId对象,并且正在尝试将documents id与一个空对象匹配。您应该使用要查找的对象标识符来设置testId(例如:var testId=new ObjectId(“12345”))