如何查询属性与列表中的项匹配的文档(c#驱动程序)

时间:2016-03-27 13:30:38

标签: c# mongodb mongodb-query

我有一个带有PersonID(int)属性的Person类。我需要拉出PersonID包含在列表中的所有人(即我在集合中有5,000,000人,但我只需要抓住ID在列表中的人(通常是10或20 - 有时更多,有时更少)

如何使用c#驱动程序执行此操作?

2 个答案:

答案 0 :(得分:2)

因为我没有Person类的完整结构,所以我将使用通用的BsonDocument进行查询。您最好的选择是使用$inIn operator

尝试:

var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("database");
var collection = database.GetCollection<BsonDocument>("collection");

请注意,我会在下一行向Filter.In运算符传递ID列表。

var filter = Builders<BsonDocument>.Filter.In("PersonID", new List<int>() {0,1,2,3});
var result = collection.FindSync(filter).ToList();

结果应该包含所有ID在0,1,2,3

范围内的人

答案 1 :(得分:0)

尝试

list.Where(x =&gt; x.PersonID == MyPerson.ID)

您需要添加对System.Linq的引用才能使用此语法。基本上,这意味着&#34;我经历了我的集合中的所有对象,让我们调用每个对象&#34; x&#34;,然后我将检查每个对象PersonID属性违背我自己的价值。&#34;这些Lambda表达式在简化代码方面非常有用!