协慌网

登录 贡献 社区

如何用 “喜欢” 查询 MongoDB?

我想查询与 SQL 的东西like查询:

SELECT * FROM users  WHERE name LIKE '%m%'

如何在 MongoDB 中实现相同的功能?我在文档中找不到like的运算符。

答案

那必须是:

db.users.find({"name": /.*m.*/})

或者,类似的:

db.users.find({"name": /m/})

你正在寻找某处包含 “m” 的东西(SQL 的 ' % '运算符等同于 Regexp 的' .* '),而不是将 “m” 锚定到字符串开头的东西。

db.users.insert({name: 'paulo'})
db.users.insert({name: 'patric'})
db.users.insert({name: 'pedro'})

db.users.find({name: /a/})  //like '%a%'

出:paulo,patric

db.users.find({name: /^pa/}) //like 'pa%'

出:paulo,patric

db.users.find({name: /ro$/}) //like '%ro'

出:佩德罗

  • PyMongo使用Python
  • 使用Node.js 的 Mongoose
  • Jongo ,使用Java
  • mgo ,使用Go

你可以做:

db.users.find({'name': {'$regex': 'sometext'}})