【发布时间】:2015-04-28 01:16:27
【问题描述】:
前言: 使用 Express 创建一个 REST API,该 API 将专门用于对“scheduledReports”下方的 mongo 用户集合项执行 CRUD 操作。 它是一个数组,用于存储在前端创建的报告对象。 集合中的每个用户以及属于该用户的任何报告都将具有唯一的 ObjectId 作为标识符。
案例:用户想要更新其集合中的报告。
问题:PUT 请求需要先在集合中找到用户,然后才能找到用户想要操作的报表。搜索将基于它们的两个 ObjectId。如何在 Mongoose 中实现这一点?
Users Collection
{
"_id": ObjectId("54c7ed6c4aac70e63c6e8e3d")
"username" : "test",
"email" : "test@system.com",
"scheduledReports" : [
{
"_id" : ObjectId("54ea4d490d24155a73497dc4"),
"reportURI" : "report",
"frequency" : "hourly|daily|weekly|monthly",
"optionalMsg" : "optionalMsg",
"subject" : "subject",
"recipient" : "hugurlu@paypal.com",
"attachments" : [
"pdf|png|csv"
]
},
....
简化信息:利用猫鼬,使用其 ObjectID 访问用户集合中的用户,然后使用给定的 ObjectId 再次访问“scheduledReports”数组中的元素。 到达该元素后,将其中的值(ObjectId 除外)替换为新的更新对象。
【问题讨论】:
-
添加更多关于你想要什么的信息。你的问题不够清楚。
标签: node.js mongodb express mongoose