Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor collection在子阵列中查找和更新对象内的值_Javascript_Mongodb_Meteor - Fatal编程技术网

Javascript Meteor collection在子阵列中查找和更新对象内的值

Javascript Meteor collection在子阵列中查找和更新对象内的值,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,我在确定如何在集合中查找文档,以及如何在该文档的子数组中的对象中查找值,然后更新该数组中的对象中的值时遇到了一些问题 我需要做以下工作: 按id查找 在分级数组中查找与用户+post键匹配的对象 更新该对象中的报告值 例如,我的收藏中的文档设置如下 { "_id" : "mz32AcxhgBLoviRWs", "ratings" : [ { "user" : "mz32AcxhgBLoviRWs", "post"

我在确定如何在集合中查找文档,以及如何在该文档的子数组中的对象中查找值,然后更新该数组中的对象中的值时遇到了一些问题

我需要做以下工作:

  • 按id查找

  • 在分级数组中查找与用户+post键匹配的对象

  • 更新该对象中的报告值

例如,我的收藏中的文档设置如下

{
    "_id" : "mz32AcxhgBLoviRWs",
    "ratings" : [
        {
            "user" : "mz32AcxhgBLoviRWs",
            "post" : "SMbR6s6SaSfsFn5Bv",
            "postTitle" : "fdsfasdf",
            "date" : "2017-09-27",
            "rating" : "4",
            "review" : "sdfa",
            "report" : "a report"
        },
        {
            "user" : "mz32AcxhgBLoviRWs",
            "post" : "iZbjMCFR3cDNMo57W",
            "postTitle" : "today",
            "date" : "2017-09-27",
            "rating" : "4",
            "review" : "sdfa",
            "report" : "some report"
        }
    ]
}

似乎您只需要一个
更新
,而不是三个单独的查询

Collection.update({
_id:,
评级:{
$elemMatch:{
用户:,
职位:
}
}
}, {
$set:{
“评级.$.report”:
}
});

文档:,。

似乎您只需要一个
更新
,而不是三个单独的查询

Collection.update({
_id:,
评级:{
$elemMatch:{
用户:,
职位:
}
}
}, {
$set:{
“评级.$.report”:
}
});

文档:,。

一个查询正是我想要的,$elemMatch工作得非常好,谢谢!一个问题正是我想要的,$elemMatch工作得很好,谢谢!