我有Review
架构,likeBy
数组包含喜欢评论的用户的ID ...
我必须查询它
案例1:如果id存在则拉它。
情况2:如果id不存在则按下它。
是否可以在单个查询中执行???
查看架构
{
"_id" : ObjectId("5aa0f4aeb5cbb2313276cccc"),
"__v" : 0,
"likeBy" : [ ]
}
答案 0 :(得分:0)
我就是这样做的
db.people.findAndModify({
query: { likedBy : {idOftheUserinLikedArray: "anyId" }},
$push: { likedBy : {idOftheUserinLikedArray: "anyId" } },
new : true
})
我不确定这是不是你想要的。如果这对您有用,请告诉我。
如果它在文档的Review
数组属性中找到您正在搜索的属性的likedBy
对象,它将返回更新的对象,以便您可以检查{如果插入了值,则为{1}}数组。
可能会有所帮助
不要忘了给它一个look