繁体   English   中英

C#MongoDB在数组中查找

[英]C# MongoDB find in Array

我在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()));

还不完整 显然没有找到正确的解决方案。

希望有人能帮忙!

谢谢!

回答我自己的问题。

答案很简单:

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

干杯!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM