2012-09-23 27 views
10

MongoDB सी # चालक मैं कैसे क्वेरी में एक से अधिक क्षेत्र शामिल कर सकते हैं (vb.net का उपयोग कर इम)MongoDB सी # चालक कई क्षेत्र क्वेरी

मुझे पता है (name1=value1 के लिए) कैसे करना है

Dim qry = Query.EQ("name1","value1") 
का उपयोग करना

मैं इस क्वेरी को कैसे संशोधित कर सकता हूं ताकि मैं इसे सभी दस्तावेज कह सकूं जहां name1=value1 और name2=value2?

(इसी प्रकार के)

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

उत्तर

18

उपयोग And विधि - सी # tutorial से उदाहरण:

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

और हमेशा आप क्या चाहते हैं (जैसा कि मैंने मामले पाया गया था जब एक कर क्या करता है एक के ऊपर ऑपरेशन नहीं) और। जैसा कि नीचे दिखाया गया है, आप एक नया क्वेरी दस्तावेज़ भी बना सकते हैं। यह वही है जो आप खोज रहे थे।

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