2012-09-23 16 views
10

Korzystanie z MongoDB C# sterownik Jak mogę zawierać więcej niż jedno pole w kwerendzie (Im przy użyciu vb.net)MongoDB C# Kierowca zapytań wielokrotnego pole

wiem jak to zrobić (na name1=value1)

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

Jak mogę zmodyfikować to zapytanie, aby można było znaleźć wszystkie dokumenty, gdzie name1=value1 i name2=value2?

(podobny do)

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

Odpowiedz

18

Zastosowanie And metoda - C# przykład z tutorial:

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

i nie zawsze to, co chcesz (jak znalazłem przypadek, gdy robi nie działa na wierzchu i). Możesz również utworzyć nowy plik QueryDocument, jak pokazano poniżej. Jest to dokładnie odpowiednik tego, czego szukałeś.

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

Chciałem poszukać tekstu w różnych dziedzinach i Full Text Search nie działa dla mnie nawet po marnować tyle czasu. więc spróbowałem tego.

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(); 
Powiązane problemy