2017-01-11 23 views
0

私のコレクションに私はオブジェクトの配列を持っています。それらのオブジェクトのサブセットのみを共有したいと思いますが、これを行う方法がわかりません。MongoDB、オブジェクトの配列内の特定のフィールドを取得

ここに私が試したいくつかのことがあります:

db.collections.find({}, 
    { fields: { 
    'myField': 1, // works 
    'myArray': 1, // works 
    'myArray.$': 1, // doesn't work 
    'myArray.$.myNestedField': 1, // doesn't work 
    'myArray.0.myNestedField': 1, // doesn't work 
    } 
}; 
+0

てみました上で、ここで

'myArray.0.myNestedField': 1 

詳細 – Veeram

+0

それは絶対に正しいです!私にそれをするのは分かりませんでした。 –

答えて

2
myArray.myNestedField':1 for projecting nested fields from the array. 

は、私は簡単にあなたが持っているすべてのバリエーションを説明します。

'myField': 1 -- Projecting a field value 
'myArray': 1 -- Projecting a array as a whole - (Can be scalar, embedded and sub document) 

以下突起とプロジェクトクエリに一致する最初の要素だけを先行クエリでのみpositional operator($)で動作変異体。

'myArray.$': 1 
'myArray.$.myNestedField': 1 

これは有効な投影操作ではありません。 1 ':?あなたは 'myArray.myNestedField' `どのようにquery & project文書

関連する問題