我有一个MongoDB的集合,投票与下面的模式猫鼬聚集如何做嵌套数组文件
{
"options" : [
{
"_id" : Object Id,
"option" : String,
"votes" : [ Object Id ] // object ids of users who voted
},.....
]
}
假设我有节点JS用户的用户id我向他们要发这个信息。我的任务是
(1)在上面的json对象(我使用猫鼬)中包含一个额外的字段。
为
“myVote”:option._id
我需要找到option._id针对
选项[someIndex] .votes包含用户id
(2)更改每个选项中现有的“投票”字段,以表示特定选项的投票数例如,在可见
例子:
{
"options" : [
{
"_id" : 1,
"option" : "A",
"votes" : [ 1,2,3 ]
},
{
"_id" : 2,
"option" : "B",
"votes" : [ 5 ]
},
{
"_id" : 3,
"option" : "C",
"votes" : [ ]
}
]
}
所以,如果一个用户ID为我的用户= 5希望看到投票的话,我需要发送以下信息:
预期结果:
{
"my_vote" : 2, // user with id 5 voted on option with id 2
"options" : [
{
"_id" : 1,
"option" : "A",
"votes" : 3 //num of votes on option "A"
},
{
"_id" : 2,
"option" : "B",
"votes" : 1 //num of votes on option "B"
},
{
"_id" : 3,
"option" : "C",
"votes" : 0 //num of votes on option "C"
}
]
}
嘿?你想要什么?请尝试添加您尝试过的内容以及预期的结果。 –
这里的例子和结果看起来与发布的原始结构高度不一致。另外,“id = 5”怎么会因此而发挥作用呢?在您选择添加附加信息时,“标记”向您发表评论的人也是习惯和礼貌的要求。帮助人们知道你在做什么。 –
@ user3561036对不起abt之前没有标记,预期的结果实际上是我想发送给客户端的json。我认为这可以通过使用聚合框架来实现,但由于我是新手,无法编写精确查询 –