您好,我想将数据插入“rss”数组。我怎样才能做到这一点? 这就是我在用户集合中添加新类别的方法:
user.findOneAndUpdate({
_id: req.body.ownerId
},
{ $push: {
categories: {
name: req.body.categoryName,
public: false
}
}},
{ safe: true, upsert: true },
function(err, model) {
console.log(err);
});
但是我如何在Sport / rss中添加一些内容?首先,我需要通过id找到一个用户,其次我需要通过id找到一个类别。怎么做,最后插入?
我的变量:
req.body.ownerId
- 用户ID
req.body.categoryId
- 类别ID
req.body.url
- 我要插入类别数组
谢谢你的帮助。
答案 0 :(得分:1)
不建议您在阵列中维护数组。通常最好为类别维护单独的集合。
也就是说,您需要执行两个查询:一个用于为用户填充categories
数组,另一个用于填充rss
数组中的categories
数组对于同一个用户。
在第一次更新查询中:
// Populate the 'categories' array. Insert the empty 'rss' array.
...
{ $push:
categories: {
name: req.body.categoryName,
public: false,
rss: []
}
}
...
在第二次更新查询中:
// Populate the 'rss' array for the same user.
...
{ $push:
'categories.$.rss': req.body.url
}
...
第二个更新查询将在第一个更新查询中执行。