mongodb C#V2:不同的Filter方法有什么影响

时间:2016-04-24 17:49:04

标签: c# mongodb mongodb-query mongodb-.net-driver

据我所知,您可以使用以下方法使用FindAsync查询mongodb:

  • Linq.Where
  • 为集合中的每个文档调用的lambda表达式
  • 使用Builder创建过滤器<>类

现在:

  1. 在搜索过程中,性能或文档的加载方式是否存在差异?
  2. 是否有推荐的搜索方式?
  3. 查询嵌套文档的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

  1. 是的,有区别。 Linq是表现最差的,但往往是最灵活,最安全的。接下来是lambda表达式,然后是过滤器,然后是简单地使用BsonDocument并直接构造mongodb查询条件的第四个选项。您选择的内容需要符合您的方法和性能标准。大多数情况下,LINQ的开销不足以放弃类型安全性。

  2. 没有

  3. 在第一个中使用上述4种方法中的一种。在数组上,您可能希望使用$elemMatch operator。请记住,嵌入的文档只是嵌入在存储的父文档中。不应该有很多次需要嵌入式文档而不是父文档。如果这种情况发生了很多,您可以考虑将嵌入的文档放在他们自己的集合中。