如何用“ like”查询MongoDB?

混江龙づ霸主 提交于 2019-12-25 09:42:10

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

我想查询一些与SQL的like查询:

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

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


#1楼

  • 使用Python的 PyMongo
  • 猫鼬使用Node.js
  • Jongo ,使用Java
  • MGO,围棋

你可以做:

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

#2楼

您可以使用where语句来构建任何JS脚本:

db.myCollection.find( { $where: "this.name.toLowerCase().indexOf('m') >= 0" } );

参考: http : //docs.mongodb.org/manual/reference/operator/where/


#3楼

如果使用node.js表示您可以编写以下代码:

db.collection.find( { field: /acme.*corp/i } );
//or
db.collection.find( { field: { $regex: 'acme.*corp', $options: 'i' } } );

另外 ,您可以这样编写:

db.collection.find( { field: new RegExp('acme.*corp', 'i') } );

#4楼

在Go和mgo驱动程序中:

Collection.Find(bson.M{"name": bson.RegEx{"m", ""}}).All(&result)

其中result是所寻求类型的struct实例


#5楼

在SQL中,“ like ”查询如下所示:

select * from users where name like '%m%'

在MongoDB控制台中,它看起来像这样:

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

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

另外, pretty()方法将在所有地方生成格式化的JSON结构,该结构更易读。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!