2016-06-20 2 views
1

私は、この基本的なモンゴドキュメントがあります。は、フィールドの値は、文書内の1つ以上の特定の場合でも、ドキュメントにマッチするMongoDB

{version: "v1.5"} 

私がいる問題は、私が使用している場合ということです:db.coll.find({version: "/v1.5/i"})それをドキュメントを返しますが、このように指定した場合、このdb.coll.find({version: "/v1.5.1/i"})のように1.5を超えるドキュメントは返されません。

MySQLでは私はちょうどすることができます:SELECT * IN versions WHERE CONCAT('%', field, '%') = "1.5.1"

どのように私はバージョンが文書のより具体的であれば、それはドキュメントを返すになるだろう。

答えて

0

あなたが置く、オプションのパラメータの正規表現を使用することができます:あなたが特定のバージョンのフィールドに存在するどのように多くの点をチェックし、

  1. を決定する必要があり、アプリ側で意味

    v1\.5(\.\d)?? 
    

    は、第二の後にすべてのものを切り捨てますドット(ドットが含まれています)

  2. optional group
として余分なデータを処理するために上記の正規表現を追加します

btw - バージョンv125またはv1a5と一致する可能性があるため、正規表現でエスケープしてください。

+0

私はバージョンを例として挙げましたが、私が問題を解決するのに役立ちました。 – User

関連する問題