如何使用正则表达式查询 MongoDB?
How to query MongoDB with regex?
humans.json
{
"_id": "22YAE7bEXdST9MyrZ",
"createdAt": {
"$date": "2016-11-22T15:09:25.968Z"
},
"abilities": {
"power": {
"mana":78,
"chakra":0
"energy":60
}
},
"emails": [
{
"address": "Rob6@rob.com",
"working": false
}
],
"roles": [
"killing":true
]
}
所以我只想得到第一个字符大写的emails.address
。
可以使用正则表达式 javascript:
db.humans.find({'emails.address': /^[A-Z]/})
如果您的数组中有很多电子邮件,但只想返回匹配的电子邮件(以大写字母开头),您可以使用额外的投影:
db.humans.find({'emails.address': /^[A-Z]/}, {emails: {$elemMatch: {'address': /^[A-Z]/}}})
humans.json
{
"_id": "22YAE7bEXdST9MyrZ",
"createdAt": {
"$date": "2016-11-22T15:09:25.968Z"
},
"abilities": {
"power": {
"mana":78,
"chakra":0
"energy":60
}
},
"emails": [
{
"address": "Rob6@rob.com",
"working": false
}
],
"roles": [
"killing":true
]
}
所以我只想得到第一个字符大写的emails.address
。
可以使用正则表达式 javascript:
db.humans.find({'emails.address': /^[A-Z]/})
如果您的数组中有很多电子邮件,但只想返回匹配的电子邮件(以大写字母开头),您可以使用额外的投影:
db.humans.find({'emails.address': /^[A-Z]/}, {emails: {$elemMatch: {'address': /^[A-Z]/}}})