我有一些有关用户查看和购买某些物品的数据。这是我的mongodb集合示例:
{
"_id" : ObjectId("blah"),
"user" : "u1111",
"items_viewed" : ["i1111", "i12345"],
"items_buyed" : ["i12345"]
}
我想要一个扁平版本,如下例所示:
{
"user" : "u1111",
"item" : "i1111",
"buyed": 0
}
{
"user" : "u111",
"item" : "i12345",
"buyed" : 1
}
如果该项目位于items_buyed数组中,则只有在“ items_viewed”中-0时,其在“已购买”字段中应为1。
请告诉我该怎么做?
答案 0 :(得分:1)
01.07
01.07
1
0
);
答案 1 :(得分:0)
每个人,再次!
我找到了另一个答案,该答案允许没有已购买的物品。在这里:
[//Aggregation pipeline
{
$unwind: { path : "$items_viewed" }
},
{
$project: {
"user" : 1,
"item": "$items_viewed",
"buyed": { $in: [ "$items_viewed", { $ifNull: [ "$items_buyed", [] ] } ] }
}
}]
感谢上一个答案,好主意!