下面是使用 mongojs 管理数据库的 MERN 应用程序的快速路由的代码片段。为了正确存储数据,我有一个名为“shows”的集合,它由 3 个子类别(观看、观看和排队)组成,每个子类别都由一组对象组成。
显然 3 个单独的发布路线可以完成同样的任务,但是有没有办法修改这个查询,其中“shows.watched”可以传递一个变量而不是在这个查询中声明为一个属性?
我正在考虑使用局部变量var something
来创建请求“shows.queued”。类似于 JSX 通过shows.${id}
或绕过查询中的标准属性请求进行连接的能力会起作用,但不确定 MongoDB 中的最佳方法。
app.post('/saveshow/:save', function(req, res) {
var something = "queued";
db.users.findAndModify(
{query: {_id: mongojs.ObjectId(req.body.userId)},
update : { $push : { **"shows.watched"** : {showid :
req.body.saveId, showtitle : req.body.saveTitle,
showimage : req.body.saveImage}}}},
function(err, result) {
if (err) throw err;
res.json(result);
})
});
这将正确地将集合传递到数据库中
节目 -> 观看 -> [{"showid": "..."}, {"showtitle":"..."}] 等。
如果可能的话,只是寻找一种更简单的扩展方式。
提前非常感谢!