sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB understreng produkt søgerækkefølge efter højeste match

Først og fremmest kan du kombinere flere filtre med at bruge & operatør sådan her:

var builder = Builders<Product>.Filter;
FilterDefinition<Product> filter = builder.Empty;
filter &= builder.Eq("Color", "blue");
filter &= builder.Eq("Retailer", "adidas");
filter &= builder.Eq("Category", "men");

Derefter kan du bruge Regex for at filtrere de produkter, hvis navne indeholder eventuelle hvileord/alle hvileord.
ELLER søg (navnet indeholder "bomuld" ELLER "spiderman")

var restWords = new string[] { "cotton", "spiderman" };
var orReg = new System.Text.RegularExpressions.Regex(string.Join("|", restWords));
filter &= builder.Regex("Name", BsonRegularExpression.Create(orReg));

List<Product> filteredList = products.Find(filter).ToListAsync().Result;

OG søg (navnet indeholder "bomuld" OG "spiderman")

foreach (var word in restWords)
{
    filter &= builder.Regex("Name", BsonRegularExpression.Create(new System.Text.RegularExpressions.Regex(word)));
}

List<Product> filteredList = products.Find(filter).ToListAsync().Result;



  1. MongoDB:forespørgsel efter et felt

  2. Mongoose unik validering virker ikke. Duplikerede poster gemmes

  3. Gem et billede i MongoDB ved hjælp af Node.js/Express og Mongoose

  4. Mongodb:Forespørg et json-objekt indlejret i et array