student集合中对应的字段如下:
{
"_id" : ObjectId("58b18f584fe1cdb0eac15be1"),
"name" : "王大拿 - E",
"sex" : "男",
"age" : 30,
"score" : 46,
"address" : "越南",
"course" : [
"语文",
"数学",
"政治",
"历史"
],
"parents" : [
{
"name" : "王大拿 - E(父亲)",
"age" : 50,
"job" : "组长"
},
{
"name" : "王大拿 - B(母亲)",
"age" : 46,
"job" : "工人"
}
]
}
正则的使用:
基础语法:{key : 正则标记};
完整语法:{key : {"$regex" : 正则标记, "options" : 选项}}
# 相应的正则标记不加引号
|- 对于options主要是设置正则的信息查询的标记
|- "i" 忽略字母大小写
|- "m" 多行查找
|- "x" 空白字符除了被转义的或在字符类中以外的完全被忽略
|- "s" 匹配所有的字符,包括换行内容
|- 对于 i 和 m 可以直接使用,但是 x 和 s 必须使用 "$regex"
范例如下:(student) 为 集合, 下同
# 直接使用的例子
db.student.find(
{"name" : /张/i}
).pretty()
# 使用 $regex
db.student.find(
{"name" : {"$regex" : /张/i}}
).pretty()
# 使用完整语法
db.student.find(
{"name" : {"$regex" : "张", "$options" : "$i"}}
).pretty()
db.student.find(
{"name" : {"$regex" : /张/, "$options" : "$i"}}
).pretty()
# 查询数组中的内容
db.student.find(
{"course" : {"$regex" : /英/i}}
).pretty()