0

埋め込みオブジェクトに含まれるデータを照会する必要があります。問題は、埋め込まれたオブジェクトの構造が不明であることです。
例:

{"field_1": "val_1", "embedded": {"random1": "someA" }}
{"field_1": "val_2", "embedded": {"random2": "someB" }}
{"field_1": "val_3", "embedded": {"random3": "someC" }}

「someB」を検索するときに 2 番目のドキュメントを取得できるようにする必要があります

構造が不明な埋め込みドキュメントを検索するにはどうすればよいですか?

ハードコードされたオブジェクトの ps 正規表現クエリを使用します。

{'$regex': '.*%s.*' % search_for}
4

2 に答える 2

3

未知の構造をどのように照会しますか? スキーマレスなアプローチを取りすぎている可能性があります。

おそらく、自分で逆索引を作成して維持したいと思うでしょう。つまり、別のコレクションでは、次のようなドキュメントを保存します。

{value: 'someB', stored_in_object:"object id here", path:'embedded.random2'}

または、全文検索エンジンがここで役立つかもしれません。

または、スキーマを再考する必要があります。

于 2012-05-10T21:33:37.337 に答える
0

スキーマ フィールドに正規表現を適用することはできません。照会するドキュメント/サブドキュメントの完全なドット名を常に指定する必要があります。それ以外の場合は、検索するものをクエリ可能な既知のフィールドに集約する必要があります。しかし、MongoDB は、私のひどいがらくたデータ スキーマ内に保存されているすべての私のがらくたを見つけるためのソリューションではありません。

于 2012-05-11T04:08:34.207 に答える