2017-07-25 4 views
1

MongoDBでクエリを作成して、正確に数学的なドキュメントプロパティを持つオブジェクトとオブジェクトの配列を検索したいと考えています。オブジェクトの配列でドキュメントを検索

私が書類を持っている:

{meta: {prop1: "hi1", prop2: "ho1"}}, 
{meta: {prop1: "hi2", prop2: "ho2"}}, 
{meta: {prop1: "hi3", prop2: "ho3"}}, 
{meta: {prop1: "hi1", prop2: "ho2"}} 

私はそのmetaプロパティこの配列に正確な目的の一つである文書を探したい:

[ 
    {prop1: "hi1", prop2: "ho1"}, {prop1: "hi2", prop2: "ho2"} 
] 

所望の結果は、文書のようになります。

{meta: {prop1: "hi1", prop2: "ho1"}}, 
{meta: {prop1: "hi2", prop2: "ho2"}} 

ではなく、

{meta: {prop1: "hi1", prop2: "ho1"}}, 
{meta: {prop1: "hi2", prop2: "ho2"}}, 
{meta: {prop1: "hi1", prop2: "ho2"}} 

答えて

1

$inオペレータを使用してください。

Collection.find({ 
    meta: { 
     $in: [ 
      { prop1: 'hi1', prop2: 'ho1'}, 
      { prop1: 'hi2', prop2: 'ho2'} 
     ] 
    } 
}) 
0

我々は、このために$orを使用することができます -

Collection.find({ 
     $or: [ 
      {'meta.prop1': 'hi1', 'meta.prop2': 'ho1'}, 
      { 'meta.prop1': 'hi2', 'meta.prop2': 'ho2'} 
     ] 
}) 

:$または、$のオブジェクト内の条件をビルドです。

また$ inbuiltが$またはを使用しているため、$inも使用できます。

関連する問題