簡體   English   中英

MongoDB C# 驅動程序多字段查詢

[英]MongoDB C# Driver multiple field query

使用 MongoDB C# 驅動程序如何在查詢中包含多個字段(我使用 vb.net)

我知道怎么做(對於name1=value1

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

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

( 相似 )

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

使用And方法 - 教程中的 C#示例:

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

我想在不同的領域搜索文本,即使浪費了這么多時間,全文搜索也不適合我。 所以我試過這個。

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

並且並不總是做你想做的(正如我發現在 and 之上執行 not 操作時的情況)。 您還可以創建一個新的 QueryDocument,如下所示。 這與您要查找的內容完全相同。

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

您可以使用:

var arrayFilter = Builders<BsonDocument>.Filter.Eq("student_id", 10000) 
 & Builders<BsonDocument>.Filter.Eq("scores.type", "quiz");

參考: https : //www.mongodb.com/blog/post/quick-start-csharp-and-mongodb--update-operation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM