MongoDB C# Query for 'Like' on string

后端 未结 3 681
忘掉有多难
忘掉有多难 2020-12-09 09:06

i am using official mongodb c# driver. i want to query mongodb simliar to SQL Like something like db.users.find({name:/Joe/} in c# driver

相关标签:
3条回答
  • 2020-12-09 09:22

    c# query will looks like:

    Query.Matches("name", BsonRegularExpression.Create(new Regex("Joe")));
    

    Update:

    As per @RoberStam suggestion, there is more simple way to do this:

    Query.Matches("name", "Joe") 
    
    0 讨论(0)
  • 2020-12-09 09:35

    For the c# driver 2.1 (MongoDB 3.0)

    var collection = database.GetCollection<BsonDocument>("<<name of the collection>>");
    
    var filter = Builders<BsonDocument>.Filter.Regex("name", new BsonRegularExpression("Joe"));
    
    var result = await collection.Find(filter).ToListAsync();
    

    For the c# driver 2.2 (MongoDB 3.0)

    var filter = new BsonDocument { { parameterName, new BsonDocument { { "$regex", value }, { "$options", "i"} } } }
    
    var result = collection.Find(filter).ToList();
    
    0 讨论(0)
  • 2020-12-09 09:38

    MongoDB C# driver has a BsonRegex type that you can use.

    Regex is the closest you will get to the SQL LIKE statement.

    Note that prefixed Regexes can use indexes: /^Joe/ will use an index, /Joe/ will not.

    0 讨论(0)
提交回复
热议问题