2015-09-09 54 views
1

我在MongoDB的這個查詢:C#MongoDB中找到陣列

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

我必須把它轉換成C#代碼。我已經搜索了很多東西,似乎沒有任何東西符合我的需求。

我甚至做了一個ELEM比賽:

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

這是不完整的。並且顯然不接近正確的解決方案。

希望有人能幫助!

謝謝!

回答

1

回答我自己的問題。

答案是如此簡單:

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 

乾杯!