MongoDB查询以查找电话号码不是XXX-XXX-XXXX格式的文档

Pra*_*nay -1 mongodb mongodb-query

我有一个集合,其中文档具有XXX-XXX-XXXX这种格式的“电话”字符串字段。但是有些电话号码格式不同,因此我们想找出具有不同电话格式的文档。MongoDB查询以查找电话号码不是XXX-XXX-XXXX格式的文档。

cba*_*iak 5

尝试这个:

db.yourCollection.find({
    phone: {
        $not: /^[0-9]{3}-[0-9]{3}-[0-9]{4}$/
    }
})
Run Code Online (Sandbox Code Playgroud)

对于以下集合:

{ 
    "_id" : ObjectId("59f059ea2504d6157d58c579"), 
    "phone" : "123-123-1234"
}
{ 
    "_id" : ObjectId("59f059f92504d6157d58c57a"), 
    "phone" : "234-234-2345"
}
{ 
    "_id" : ObjectId("59f05a0f2504d6157d58c57b"), 
    "phone" : "11-111-12222"
}
Run Code Online (Sandbox Code Playgroud)

它返回:

{ "_id" : ObjectId("59f05a0f2504d6157d58c57b"), "phone" : "11-111-12222" }
Run Code Online (Sandbox Code Playgroud)

如果您想进一步限制电话号码,只需调整正则表达式模式即可。