我应该使用什么而不是在MongoDB中加入

时间:2017-12-26 04:56:55

标签: php mongodb

我在MongoDB数据库中有集合,我想编写查询以加入PHP中的集合。

我想向相关用户展示新闻。

我搜索过但不幸的是我没有找到令人信服的答案。

数据看起来像这样:

users
{
"_id": "4ca30369fd0e910ecc000006",
"login": "user11",
"pass": "example_pass",
"date": "2017-12-15"
}
news
{
"_id": "4ca305c2fd0e910ecc000003",
"name": "news one",
"content": "news one",
"user_id": "4ca30373fd0e910ecc000007",
"date": "2017-12-15"
}

2 个答案:

答案 0 :(得分:0)

注意:我是一名MEAN开发人员

我们使用.populate()方法(mongoose)来实现连接达到一个级别。

至于php

您可以使用RDBMS中的不同方法

数据复制

"news": {
  "_id": "4ca305c2fd0e910ecc000003",
  "name": "news one",
  "content": "news one",
  "user": {
    "_id": "4ca30369fd0e910ecc000006",
    "login": "user11"
  },
  "date": "2017-12-15"
}

答案 1 :(得分:0)

使用 mongoose 实现mongodb中的连接.populate()是单向的。如果您想在MongoDB数据库级别实现联接,那么您应该尝试聚合管道和 $ lookup

db.news.aggregate([ 
  $lookup : { 
  from : 'users', 
  localField : 'user_id', 
  foreignField : '_id', 
  as : 'user' 
 } 
])

您可以使用 $ match 添加条件并过滤查询结果。