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

问题描述 投票:0回答:2

我在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"
}
php mongodb
2个回答
0
投票

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

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

至于PHP

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

数据复制

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

0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.