2011-07-21 9 views
1

テストコード:MongoDB:リストタイプのitmesのリスト内のアイテムを照会するには?

[ 
{ 
    "_id": { 
     "$oid": "4e27f4c0cfdb4a09b8ace1dd" 
    }, 
    "Description": "NO.000001", 
    "Title": "PM:000001", 
    "Age": 14, 
    "CommentList": [ 
     { 
      "_id": { 
       "$oid": "4e27f4c0cfdb4a09b8ace1da" 
      }, 
      "Content": "Hello:00001", 
      "Creator": "Jack00001", 
      "Date": "2011-7-21 0:00:00", 
      "InDate": { 
       "$date": 1310400000000 
      } 
     }, 
     { 
      "_id": { 
       "$oid": "4e27f4c0cfdb4a09b8ace1db" 
      }, 
      "Content": "Hello:00002", 
      "Creator": "Jack00002", 
      "Date": "2011-7-21 0:00:00", 
      "InDate": { 
       "$date": 1310400000000 
      } 
     }, 
     { 
      "_id": { 
       "$oid": "4e27f4c0cfdb4a09b8ace1dc" 
      }, 
      "Content": "Hello:00003", 
      "Creator": "Jack00003", 
      "Date": "2011-7-21 0:00:00", 
      "InDate": { 
       "$date": 1310400000000 
      } 
     } 
    ] 
} 

]

私はのMongoDB C#のドライバを使用して、データモデルに基づいて、私の予想結果はその次のとおりです。

[ 
{ 
    "_id": { 
     "$oid": "4e27f4c0cfdb4a09b8ace1dd" 
    }, 
    "Description": "NO.000001", 
    "Title": "PM:000001", 
    "Age": 14, 
    "CommentList": [ 
     { 
      "_id": { 
       "$oid": "4e27f4c0cfdb4a09b8ace1db" 
      }, 
      "Content": "Hello:00002", 
      "Creator": "Jack00002", 
      "Date": "2011-7-21 0:00:00", 
      "InDate": { 
       "$date": 1310400000000 
      } 
     }, 
    ... 
    ] 
} 

]

どう

コメントを得るには?ありがとう!

+0

質問が必要です。あなたはすべてのコメントが必要なのか、いくつかのコメントのみが必要ですか?それに基づいて私はあなたを助けることができるかもしれません。 – kheya

答えて

0

私が知っているように、埋め込みドキュメントを選択するのは今のところnot possibleです。カーソルでLINQを使用すると、結果をフィルタリングできます。

var query = Query.And(new[] { Query.EQ("_id.$oid", documentId), Query.EQ("CommentList._id.$oid", commentId) }); 
var res = collection.FindOne(query); 
res = res.Select(o=> new DocumentName 
{ 
    Description = o.Description, 
    .... 
    CommentList = o.CommentList.Where(x=>x.Id == commentId) 
}); 
+0

これを更新するだけで、埋め込みドキュメントをクエリの条件として使用することはできなくなりました。http://docs.mongodb.org/manual/reference/operator/elemMatch/#op._S_elemMatch –

関連する問題