db.mice.find({'strains': {$in : [{mode:'++',name:'Str1'},{mode:'++',name:'Str2'}]}}).count()
// returns 0
db.mice.find({'strains': {$in : [{name:'Str1',mode:'++'},{name:'Str2',mode:'++'}]}}).count()
// returns 1
同じクエリを作成しますが、オブジェクト内のキーと値のペアの順序はどうやって無視しますか?mongodb - 演算子 - オブジェクトキーの順序を無視する
db.mice.find({'strains': {$elemMatch: {mode:'++', name:'Str1'}}}).count()
$in
が動作しない理由は、ので、それは配列フィールドの要素に対する全体の値と一致する上で動作することである:
$は、配列の要素の順序に関係なく動作します。あなたはどんな問題を抱えていますか? –