MongoDB正規表示式匹配使用方法舉例

chenfeng發表於2016-05-26
查詢不匹配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 }
>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2107412/,如需轉載,請註明出處,否則將追究法律責任。

相關文章