【发布时间】:2018-12-08 17:06:50
【问题描述】:
我是 MongoDB 新手,我使用 Mongoose 管理进出 MongoDB 的数据。我有一个具有以下结构的集合:
var post= new Schema({
message: String,
created_by_user_id: mongoose.Schema.Types.ObjectId,
created_at: Date,
likes: [new Schema({liked_by_user_id: mongoose.Schema.Types.ObjectId})]
});
下面是上面的带有虚拟文档的集合:
[{
"_id": "5c0254c13a22f222ceb861ad",
"message": "from pppr",
"created_by_user_id": "5c0253e9a53bed2165c0625c",
"likes": [
{
"_id": "5c027a6fff5fcb5ab180e20c",
"liked_by_user_id": "5c0253e9a53bed2165c0625c"
},
{
"_id": "5c028e46abc09775c10d767b",
"liked_by_user_id": "5c0234c1d8832b6af3b4f4a6"
}
],
"created_at": "2018-12-01T09:30:41.943Z",
"__v": 0
},
{
"_id": "5c0254c13a22f222ceb861ad",
"message": "from pppr",
"created_by_user_id": "5c0253e9a53bed2165c0625c",
"likes": [
{
"_id": "5c027a6fff5fcb5ab180e20c",
"liked_by_user_id": "5c0253e9a53bed2165c0625c"
},
{
"_id": "5c028e46abc09775c10d767b",
"liked_by_user_id": "5c0234c1d8832b6af3b4f4a6"
}
],
"created_at": "2018-12-01T09:30:41.943Z",
"__v": 0
}]
现在,我正在尝试获取所有文档以及状态,这将表明我是否喜欢相应的帖子。应要求,我还发送了我的用户 ID。
基本上,在我的墙上,系统应该显示我或我的朋友创建的所有帖子以及每个文档中的额外状态,这将显示我是否喜欢相应的帖子。
我将用户朋友保存在名为“用户朋友”的单独集合中。该集合的结构如下:
var userfriends = new Schema({
user_id_1: mongoose.Schema.Types.ObjectId,
user_id_2: mongoose.Schema.Types.ObjectId,
created_at: Date
});
我只想获取所有帖子以及那个额外的字段。因此,您可以忽略 userfriends 集合,这只是为了指导您。
任何人都可以帮助我吗?可以满足我要求的查询是什么?
提前致谢
【问题讨论】:
标签: mongodb mongoose mongodb-query aggregation-framework