2017-05-18 8 views
0

mongodbが作成されました。クライアントのメールアドレスと関連するアカウントがいっぱいです。しかし、私は電子メールとして記載されているいくつかの値は電子メールではないことを発見しました。以下の例を参照してください。mongodbに@を入れていない文書を削除する

{ 
     "_id" : ObjectId("591d9cf30ef9acde11d7af6b"), 
     "email" : "[email protected]", 
     "src" : [ 
       { 
         "acc" : "yahoo", 
         "name" : "matter" 
       } 
     ] 
} 
{ 
     "_id" : ObjectId("591daa540ef9acde11d7af6c"), 
     "email" : "122", 
     "src" : [ 
       { 
         "acc" : "ldd" 
       } 
     ] 
} 

私はキーemailは、電子メールの正しい値を持っているかいないかどうかを確認したいです。そうでなければ、私はその文書を削除して、私のモンゴをきれいにしたいと思います。
どうすれば実現できますか?

+1

http://stackoverflow.com/questions/38066324/mongodb-save-regular-expressions-like-email-address-usernameある程度のあなたを助けるかもしれません! – harshavmb

答えて

2

は、私は正規表現は、このような@で正常に動作します100%わからないんだけど

db.getCollection('somecollection').remove({ email: { $not: /@/ } })

$not演算子で正規表現を使用してremoveコマンドを使用します。最初にremoveの代わりにfindを使用してテストすることをおすすめします。

db.getCollection('somecollection').find({ email: { $not: /@/ } })

+0

私はそれをチェックさせてください。 –

+0

ちょうどあまりにもそれは意図したように動作するようです –

+0

正規表現は '.'を持っていなければならないと思うので、もし入力された電子メールが' gg @ mail'のようなものなら、それでもメールアドレスは –

関連する問題