0

{"MyCollectionAttribute": 12345} のような int 属性値を含む要素を持つ mongodb コレクションがあるとします。

Query<T>.構文を使用して int 内の文字列「234」を検索するにはどうすればよいですか?

今のところ、次のような生のクエリを使用して(ここで説明されているように)動作するようです:

var query = new QueryDocument("$where", "/234/.test(this.MyCollectionAttribute)");
myCollection.Find(query);

正規表現の一致が遅くなるため、値を整数ではなく文字列として直接保存することをお勧めしますか? これらの状況にどのようにアプローチしますか?

編集

コンテキスト: 会社は、数字であるいくつかの内部コードを持つことができます。SQL サーバーでは、データベース レベルでデータの整合性を保つために int 型の列として格納し、次のような方法で linq から sql にクエリを実行できます。

.where(item => item.CompanyCode.ToString().Contains("234"))

このようにして、データベース レベルでのデータの整合性とクエリのタイプ セーフの両方が実現されます。

mongodb を使用してこのシナリオを実装する方法を確認するために質問しました。

4

1 に答える 1

0

あなたが求めていることはあまり意味がありません。

正規表現は、文字列内の検索用であり、整数内の検索用ではありません。

何らかの理由で部分文字列検索を実行したい場合は、数値を整数としてではなく文字列として保存してください - 明らかに。

于 2012-09-07T15:20:14.567 に答える