我在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"
}
注意:我是一名MEAN开发人员
我们使用.populate()
方法(mongoose)来实现连接达到一个级别。
至于PHP
您可以使用RDBMS中的不同方法
数据复制
"news": {
"_id": "4ca305c2fd0e910ecc000003",
"name": "news one",
"content": "news one",
"user": {
"_id": "4ca30369fd0e910ecc000006",
"login": "user11"
},
"date": "2017-12-15"
}
使用mongoose实现mongodb中的连接.populate()是单向的。如果要在MongoDB数据库级别实现连接,则应尝试聚合管道和$ lookup
db.news.aggregate([
$lookup : {
from : 'users',
localField : 'user_id',
foreignField : '_id',
as : 'user'
}
])
您可以使用$ match添加条件并过滤查询结果。