MongoDB:flattern数组QUIZ

时间:2018-08-09 10:41:54

标签: mongodb

我有一些有关用户查看和购买某些物品的数据。这是我的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。

请告诉我该怎么做?

2 个答案:

答案 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", [] ] } ] }
 }        
}]

感谢上一个答案,好主意!