【推荐】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结构,该结构更易读。
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3147003