2012-09-23 39 views
10

使用MongoDB的C#司機怎樣才能在查詢中包含多個字段(即時通訊使用vb.net)MongoDB的C#驅動多個領域查詢

我知道該怎麼做(爲name1=value1

Dim qry = Query.EQ("name1","value1") 

如何修改此查詢,以便我可以找到所有文件,其中name1=value1name2=value2

(類似)

db.collection.find({"name1":"value1","name2":"value2"}) 

回答

18

使用And方法 - C#從tutorial例如:

MongoCollection<BsonDocument> books; 
var query = Query.And(
    Query.EQ("author", "Kurt Vonnegut"), 
    Query.EQ("title", "Cats Craddle") 
); 
2

而且並不總是做你想做的(我發現的情況下做了當不是在和之上操作)。您也可以創建一個新的QueryDocument,如下所示。這與你所尋找的東西完全相同。

Query.Not(new QueryDocument { 
    { "Results.Instance", instance }, 
    { "Results.User", user.Email } })) 
0

我想搜索不同領域的文本,全文搜索對我來說也不適用,即使浪費了太多時間。所以我嘗試了這個。

var filter = Builders<Book>.Filter.Or(
    Builders<Book>.Filter.Where(p=>p.Title.ToLower().Contains(queryText.ToLower())), 
    Builders<Book>.Filter.Where(p => p.Publisher.ToLower().Contains(queryText.ToLower())), 
    Builders<Book>.Filter.Where(p => p.Description.ToLower().Contains(queryText.ToLower())) 
      ); 
List<Book> books = Collection.Find(filter).ToList();