我有一個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。我認爲這可以通過使用聚合框架來實現,但由於我是新手,無法編寫精確查詢 –