我有Review
架构,其中的likeBy
数组包含喜欢该评论的用户的ID ...
我必须像查询
情况1:如果id存在,将其拉出。
情况2:如果id不存在,则将其推送。
是否可以在单个查询中进行???
审核架构
{
"_id" : ObjectId("5aa0f4aeb5cbb2313276cccc"),
"__v" : 0,
"likeBy" : [ ]
}
最佳答案
这就是我要做的
db.people.findAndModify({
query: { likedBy : {idOftheUserinLikedArray: "anyId" }},
$push: { likedBy : {idOftheUserinLikedArray: "anyId" } },
new : true
})
我不确定这是否是您想要的。让我知道这是否适合您。
它将执行的操作是,如果在文档的
Review
数组属性中找到要搜索的属性的likedBy
对象,它将返回更新后的对象,因此可以检查likedBy
数组(如果值是是否插入。可能会有帮助
并且不要忘记给它look