查询不匹配name=Y*带头的记录
db.users.find({name: {$not: /^Y.*/}});
举例如下:
> db.dsf.find()
{ "_id" : ObjectId("5746a686c99412b5a551bcdf"), "name" : "Liu", "age" : null }
{ "_id" : ObjectId("5746a699c99412b5a551bce0"), "name" : "Jack", "age" : 23 }
{ "_id" : ObjectId("5746a6a5c99412b5a551bce1"), "name" : "Yange", "age" : 23 }
{ "_id" : ObjectId("5746a6acc99412b5a551bce2"), "name" : "Yange", "age" : 26 }
查询name 不以Y开头的数据
> db.dsf.find({name:{$not:/^Y.*/}})
{ "_id" : ObjectId("5746a686c99412b5a551bcdf"), "name" : "Liu", "age" : null }
{ "_id" : ObjectId("5746a699c99412b5a551bce0"), "name" : "Jack", "age" : 23 }
可以看到只显示出了name=Liu和name=Jack的数据,其它不符合规则的数据并没有显示出来
其他下面两个查询也同理:
> db.dsf.find({name:{$not:/^L.*/}})
{ "_id" : ObjectId("5746a699c99412b5a551bce0"), "name" : "Jack", "age" : 23 }
{ "_id" : ObjectId("5746a6a5c99412b5a551bce1"), "name" : "Yange", "age" : 23 }
{ "_id" : ObjectId("5746a6acc99412b5a551bce2"), "name" : "Yange", "age" : 26 }
> db.dsf.find({name:{$not:/^J.*/}})
{ "_id" : ObjectId("5746a686c99412b5a551bcdf"), "name" : "Liu", "age" : null }
{ "_id" : ObjectId("5746a6a5c99412b5a551bce1"), "name" : "Yange", "age" : 23 }
{ "_id" : ObjectId("5746a6acc99412b5a551bce2"), "name" : "Yange", "age" : 26 }
>