c# MongoDB查找数组

本文关键字:数组 查找 MongoDB | 更新日期: 2023-09-27 18:11:45

我在mongodb中有这个查询:

db.getCollection('emails').find({"to.address": {$in:['email@domain.com']}})

我必须把它转换成c#代码。我已经找了很多,但似乎没有一个符合我的需要。

我甚至做了一个元素匹配:

MongoCursor<Email> csr = ConnectionHandler.Collection.Find(Query<Email>.ElemMatch(t => t.to(Query<Email.Address>).In(a => a.address, emails)));

这是我到目前为止在c#中想到的:

var emails = emailAddresses.Select(e => e.emailAddress);
MongoCursor<Email> csr = ConnectionHandler.Collection.Find(Query<Email>.EQ("to.address", (Query<Email.Address>.In()));

它是不完整的。显然不是正确的解决方案。

希望有人能帮忙!

谢谢!

c# MongoDB查找数组

回答我自己的问题。

答案很简单:

var emails = new BsonArray(emailAddresses.Select(e => e.emailAddress));
MongoCursor<Email> csr = ConnectionHandler.Collection.Find(Query.In("to.address", emails));

显然,您可以在不使用类型的情况下执行查询,因此不使用此:

Query<Email>.EQ

你可以像这样输入你的查询:

Query.In("to.address", emails)

,只要您要将其存储到的变量与您想要的对象以及您要查询的集合类型相同即可。例如:

MongoCursor<Email> csr

干杯!