MongoDB でカラムの文字数がnのドキュメントを検索
2015-09-03 mongodb
length を使う場合と、正規表現を使う場合の2パターンある。
以下のような collection があると仮定して、
{
{ "a" : "こんにちは" },
{ "a" : "私は" },
{ "a" : "元気です" },
{ "a" : "それでは" },
{ "a" : "さようなら" }
}
カラム a の文字数が「4」の document を検索する場合は以下のようにする。
> db.collection.find( {$where:"this.a.length===4"} );
{ "_id" : ObjectId("55e7d386062207b5b9dbff25"), "a" : "元気です" }
{ "_id" : ObjectId("55e7d391062207b5b9dbff26"), "a" : "それでは" }
> db.collection.find( { a : /\A.{4}\z/ } );
{ "_id" : ObjectId("55e7d386062207b5b9dbff25"), "a" : "元気です" }
{ "_id" : ObjectId("55e7d391062207b5b9dbff26"), "a" : "それでは" }
「4文字以上」って場合はこんな具合。
> db.collection.find( {$where:"this.a.length >= 4"} )
{ "_id" : ObjectId("55e7d36c062207b5b9dbff23"), "a" : "こんにちは" }
{ "_id" : ObjectId("55e7d386062207b5b9dbff25"), "a" : "元気です" }
{ "_id" : ObjectId("55e7d391062207b5b9dbff26"), "a" : "それでは" }
{ "_id" : ObjectId("55e7d543062207b5b9dbff27"), "a" : "さようなら" }
> db.collection.find( { a : /\A.{4,}\z/ } )
{ "_id" : ObjectId("55e7d36c062207b5b9dbff23"), "a" : "こんにちは" }
{ "_id" : ObjectId("55e7d386062207b5b9dbff25"), "a" : "元気です" }
{ "_id" : ObjectId("55e7d391062207b5b9dbff26"), "a" : "それでは" }
{ "_id" : ObjectId("55e7d543062207b5b9dbff27"), "a" : "さようなら" }
≪ 2015-09-04
森ボーイシールを作った。あと今まで作ったシールやバッヂのまとめ
2015-09-03 ≫
手紙を書く