簡體   English   中英

如何使用PHP在MongoDB中選擇具有特定元素的文檔?

[英]How to select documents with specific elements in MongoDB with PHP?

我具有mongo文檔的以下結構:

{
 "_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" ....
 }

}

如何僅選擇僅包含特定回復類型的文檔,例如“ type”:“ one”? 謝謝!

就像我第一次嘗試對它進行分組時,它的工作原理是這樣的:

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

也許它將幫助像我這樣的其他人。 鍵“ 0”,“ 1” ...無效。

在mongo文檔中查看$elemMatch ,我認為這會有所幫助。 http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24all

您可以嘗試以下方法:

t.find({replies: {$elemMatch: { "type": "one" } } });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM