当我不知道文档 ID 时,如何使用猫鼬查询子文档



我的任务是使用mongodb重建一个更为单一的数据库。在这个数据库中,我有一个产品文档,它看起来像这样。

{
product_id: 4.
questions: [
{
question_id: 10,
question_text: "hello?",
helpfulness: 0
},
{
question_id: 11,
question_text: "goodbye?",
helpfulness: 1
}
]
}

我将收到一个到我的服务器的请求,其中包括question_id(即11(,我需要增加问题的有用性。我到处都找过了,但我似乎找不到一种方法来查询我的数据库,只使用问题id,并在不知道产品id的情况下更新该问题。有办法做到这一点吗?非常感谢你的帮助!

我认为给定的查询可以帮助您获取和更新产品文档:

db.product.update({questions: {$elemMatch: {question_id:'11'}}},{
$inc: {"questions.helpfulness": 1}
})

这里$inc用于将您的帮助价值增加1

在这里,首先需要匹配问题id,然后将相对有用性加1。一定要试试

db.collection.updateOne({'questions.question_id' : 11}, {$inc : {"questions.$.helpfulness" : 1}})

输出:

{ 
"_id" : ObjectId("5f891ca72857d128c68bf01a"), 
"product_id" : 4.0, 
"questions" : [
{
"question_id" : 10.0, 
"question_text" : "hello?", 
"helpfulness" : 0.0
}, 
{
"question_id" : 11.0, 
"question_text" : "goodbye?", 
"helpfulness" : 2.0
}
]
}

最新更新