【发布时间】:2016-12-21 07:58:59
【问题描述】:
我的结构如下所示:
course: { // course
id,
coursename,
sections: { // has an array of sections
section: {
id,
sectionname
cards: { // each section has an array of cards
card: {
id
cardname
}
}
}
}
}
现在,我得到了卡 ID。假设 cardID 是 301。我没有关于课程或存储卡的部分的详细信息。我只有cardID。我想将卡名从“Test 1”更新为“Test 2”。
请提供一些关于如何在仅给定 cardId 的情况下更新卡片名称的信息。另请提供有关如何仅使用 cardId 访问单张卡的信息。
如果我运行以下查询:
db.course.find( {"sections.cards.id" : ObjectId("5859517447c4286d0f0639ee")},
{"sections.cards.$":1,_id:0})
返回整个部分对象,而不是返回单个卡片。请提供一些有关如何仅使用 cardId 访问单个卡的信息。
我拥有的文档示例:
{
"_id" : ObjectId("58595041cfdc46100f92a985"),
"modelType" : "Course",
"name" : "c1",
"sections" : [
{
"id" : ObjectId("5859504dcfdc46100f92a986"),
"name" : "s1",
"cards" : [
{
"id" : ObjectId("58595057cfdc46100f92a987"),
"name" : "card1",
},
{
"id" : ObjectId("5859506ccfdc46100f92a988"),
"name" : "card2"
}
]
}
]
}
请提供有关如何仅使用卡 ID 更新卡的信息。
假设我想更改卡的名称。如何实现?
【问题讨论】:
-
你想做什么?您可以发布文件作为示例吗?不清楚哪个属性是你的数组,哪个是你的对象
-
@DennyHiu,我添加了一个示例文档。我想只使用卡片 ID 获取特定卡片。
-
@MaulikSoneji 你试过
$elemMatch吗? -
@Yogesh,我已经编写了上面尝试过的查询。我不知道 $elemMatch。您能否提供更多解释或编写查询来这样做?
-
@MaulikSoneji 我刚刚写了一个答案,希望它是你需要的。随意问:)
标签: mongodb mongoose loopbackjs mongojs