0

I have the following structure of a mongo document:

{
 "_id": ObjectId("4fba2558a0787e53320027eb"),
 "replies": {
    "0": {
      "email": ObjectId("4fb89a181b3129fe2d000000"),
      "sentDate": "2012-05-21T11: 22: 01.418Z",
      "type": "one"
    } 
    "1": {
     "email": ObjectId("4fb89a181b3129fe2d000000"),
     "sentDate": "2012-05-21T11: 22: 01.418Z",
      "type": "two"
    } 
    "2" ....
 }

}

How do I select only documents containing only specific type of replies, for example "type":"one"? Thank you!

4

2 に答える 2

0

初めてグループを作ろうとしたとき、それは単にこのように機能しました:

$cursor = $db->foo->find(
    array('replies.type' => 'one'), array('replies.sentDate')
);

多分それは私のような他の人を助けるでしょう。キー「0」、「1」...は効果がありません。

于 2012-05-27T08:39:29.960 に答える
-1

mongoのドキュメントを見てください$elemMatch。役立つと思います。 http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24all

これを試すことができます:

t.find({replies: {$elemMatch: { "type": "one" } } });
于 2012-05-21T16:13:12.517 に答える