私の各ユーザーが多くの「スマート検索」を保存できると仮定します。
user = {
'username':'johncit',
'smart_searches': [
{'name':'last 24 hrs','terms':{'modifiedby':datetime(2012,1,1),'title':'foobar'}},
{'name':'blabla','terms':{'title':'whatever','otherfield':500}}
]
}
ここで、ジョンが「blabla」検索をヒットしたとします。条件を取得するにはどうすればよいですか?私は次のようなジョンのすべてのスマート検索を取得できます:
db.Users.find_one({
'username':'johncit','smart_searches':{'$elemMatch':{'Name':'blabla'}}})
しかし、これは、私が本当に必要としている「blabla」検索の用語だけでなく、ドキュメント全体を返します。次に、クライアント側で正確な用語を理解する必要がありますか?それとも、これは「smart_searches」を独自のコレクションに入れる場合ですか?より良い構造はありますか?
私はあなたの考えを聞いてみたいです。