2012-09-23 17 views
10

Utilizando el # conductor MongoDB C ¿Cómo puedo incluir más de un campo en la consulta (Im usar vb.net)MongoDB C# Conductor consulta

sé cómo hacerlo (por name1=value1)

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

¿Cómo puedo modificar esta consulta para que pueda encontrar todos los documentos donde name1=value1 y name2=value2?

(similares a)

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

Respuesta

18

Uso And método - C# ejemplo de tutorial:

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

Y no siempre hace lo que quiere (como me encontré fue el caso cuando se hace una no funciona en la parte superior de una y). También puede crear un nuevo QueryDocument, como se muestra a continuación. Esto es exactamente el equivalente de lo que estabas buscando.

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

Quería buscar un texto en diferentes campos y la búsqueda de texto completo no funciona para mí incluso después de perder tanto tiempo. así que probé esto.

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