使用 MongoDB C# 驱动程序如何在查询中包含多个字段(我使用 vb.net)
我知道该怎么做 (for name1=value1
)
Dim qry = Query.EQ("name1","value1")
我怎样才能修改这个查询,所以我可以让它找到所有文档 where name1=value1
和name2=value2
?
( 如同 )
db.collection.find({"name1":"value1","name2":"value2"})
使用 MongoDB C# 驱动程序如何在查询中包含多个字段(我使用 vb.net)
我知道该怎么做 (for name1=value1
)
Dim qry = Query.EQ("name1","value1")
我怎样才能修改这个查询,所以我可以让它找到所有文档 where name1=value1
和name2=value2
?
( 如同 )
db.collection.find({"name1":"value1","name2":"value2"})
我想在不同的领域搜索文本,即使浪费了这么多时间,全文搜索也不适合我。所以我尝试了这个。
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 之上进行非操作时就是这种情况)。您还可以创建一个新的 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