乐闻世界logo
搜索文章和话题

How I can use " LIKE " operator on?

1个答案

1

In Mongoose, there is no direct "LIKE" operator because it is primarily derived from SQL concepts. Instead, Mongoose uses regular expressions within the MongoDB context to achieve similar functionality. When performing a query analogous to SQL's LIKE operation, you use regular expressions to match patterns within the field.

For example, suppose you have a user model (User Model) and you want to find all users whose usernames contain a specific string. You can use regular expressions as shown below:

javascript
const mongoose = require('mongoose'); const User = mongoose.model('User', new mongoose.Schema({ username: String })); const searchString = 'john'; User.find({ username: new RegExp(searchString, 'i') }, function(err, users) { if (err) throw err; console.log(users); // This prints all users whose usernames contain 'john', case-insensitive });

In the above code, we create a regular expression new RegExp(searchString, 'i'), where searchString is the string to search for (here, 'john'), and 'i' is a flag indicating case-insensitive matching.

This regular expression treats any value containing searchString as a match, similar to SQL's LIKE '%john%' operation. If you want to match text starting or ending with searchString, you need to slightly modify the regular expression:

  • For prefix matching: '^john' (equivalent to LIKE 'john%')
  • For suffix matching: /john$ (equivalent to LIKE '%john')

Using Mongoose, regular expressions provide significant flexibility, but you must have a basic understanding of JavaScript regular expressions.

2024年6月29日 12:07 回复

你的答案