我有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

10-08 12:51