如何使用Php程序语言加入Mongodb的2个集合?

时间:2013-06-06 07:40:32

标签: php mongodb mapreduce nosql

我正在使用Mongo PHP扩展,我想在php中加入2个集合。我四处搜索,但人们通常说“你可以使用map-reduce”,但我不能在php中这样做。

我的数据如下:

users
{
  "_id": "4ca30369fd0e910ecc000006",
  "login": "user11",
  "pass": "example_pass",
  "date": "2010-09-29"
},
{
  "_id": "4ca30373fd0e910ecc000007",
  "login": "user22",
  "pass": "example_pass",
  "date": "2010-09-29"
}

news
{
  "_id": "4ca305c2fd0e910ecc000003",
  "name": "news 333",
  "content": "news content 3333",
  "user_id": "4ca30373fd0e910ecc000007",
  "date": "2010-09-29"
},
{
  "_id": "4ca305c2fd0e910ecc00000b",
  "name": "news 222",
  "content": "news content 2222",
  "user_id": "4ca30373fd0e910ecc000007",
  "date": "2010-09-29"
},
{
  "_id": "4ca305b5fd0e910ecc00000a",
  "name": "news 111",
  "content": "news content",
  "user_id": "4ca30369fd0e910ecc000006",
  "date": "2010-09-29"
}

如何在php中用Mongodb编写这个sql?

SELECT n.*, u.* 
FROM news AS n 
INNER JOIN users AS u ON n.user_id = u.id

1 个答案:

答案 0 :(得分:1)

您必须在应用程序中实现一些算法: 例如,实现这个:
http://en.wikipedia.org/wiki/Nested_loop_join http://en.wikipedia.org/wiki/Sort-merge_join

所以基本上没有简单的解决方案,而不是这里描述的解决方案: MongoDB-PHP: JOIN-like query

另见: 很可能你也提出了这个问题(但是在答案中它描述了如果你设计文档结构类型的预加入方式那么明智): mongodb php - how to do "INNER JOIN"-like query