我想将数据从集合传递到MongoDB的视图.如何执行查询(限制1)将结果赋给VIEWBACK变量?

例如,我希望在LINQ中传递以下查询

db.getCollection('monitoreo').find({valor:'002'}).limit(1)

我保留了返回整个列表的控制器的示例,并将其传递给视图

public ActionResult Index()
{
   List<monitoreoModel> monitoreo = monitoreoCollection.AsQueryable<monitoreoModel>().ToList();
    return View(monitoreo);
}

请帮帮忙,谢谢!

推荐答案

如果您想使用Linq,可以遵循以下示例:

var result = monitoreoCollection
  .AsQueryable()
  .Where(x => x.Valor == "002")
  .Take(1) // This is not required, but asserts that MongoDB returns only one document
  .FirstOrDefault()

上面的代码只返回第一个匹配项,如果不存在,则返回NULL.

如果要使用简单的查找命令而不是聚合管道,可以使用以下命令.仅在Find命令的async版本中支持Limit,因此必须将操作更改为async:

public async Task<ActionResult> Index()
{
   var result = await (await monitoreoCollection.FindAsync(
       x => x.Valor == "002", 
       new FindOptions<EventBase, EventBase>() { Limit = 1 }))
     .FirstOrDefaultAsync();
    return View(result);
}

Csharp相关问答推荐

声明和实例化时抽象类和Generics的结合问题

如何从Date中剥离Timezone部分以仅保留本地Date部分?(no字符串解析或操作)

如果没有中间变量,可空引用类型将无法工作

我应该将新的httpReportMessage()包装在using声明中吗?

Microsoft.AspNetCore.Mvc. Controller Base.用户:属性或索引器Controller Base.用户无法分配给--它是只读的

C#类主构造函数中的调试参数

Appsettings.json未加载.Net 8 Blaazor Web程序集

当用户右键单击文本框并单击粘贴时触发什么事件?

异步实体框架核心查询引发InvalidOperation异常

异步任务导致内存泄漏

反序列化私有成员

使用Entity Framework6在对象中填充列表会导致列表大多为空

GODOT 4向C#中的字符串参数发送信号以等待

MSTest--将消息直接写入StdOut和使用TestContext有什么不同?

如何在onNext之前等待订阅者完成?

实体框架-IsRequired()与OnDelete()

C#LINQ延迟执行和嵌套方法

我可以强制System.Text.Json.JsonSerializer以非递归方式工作吗?

FakeItEasy自动嘲弄内容

如何在.NET Core 8中自定义标识用户模型