我使用mongodb的.NET驱动程序从C#查询mongodb。 以下代码为我提供了名称中包含“Foods”的餐馆名称。
public void FindResName(string question)
{
_client = new MongoClient("mongodb://localhost:27017");
_database = _client.GetDatabase("test");
var collection = _database.GetCollection<BsonDocument>("restaurants");
collection.Indexes.CreateOne(
Builders<BsonDocument>.IndexKeys.Text("name"),
new CreateIndexOptions() { DefaultLanguage = "english", Name = "NameTextIndex" });
var results = collection.Find(Builders<BsonDocument>.Filter.Text("Foods"))
.Project(Builders<BsonDocument>.Projection.MetaTextScore("textScore"))
.Sort(Builders<BsonDocument>.Sort.MetaTextScore("textScore"))
.ToList();
for(int count=0; count<10; count++)
{
Console.WriteLine(results[count]["name"].ToString());
}
}
我想要这样的东西
db.restaurants.find( { $text: { $search: "foods cafe mall" } } )
mongodb中的此查询将返回餐馆,其中包含食品或咖啡馆或商场或其名称的组合。我不知道如何在C#中执行此操作。 查询mongodb时如何在C#中应用OR条件?(文本搜索)