gpt4 book ai didi

javascript - 如何在嵌套数组中更新插入新字段

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:23 25 4
gpt4 key购买 nike

嘿伙计们,我知道是否可以在嵌套数组中更新插入新字段?

例如像这样的嵌套数组。

"comments" : [
{
"name" : "john",
"title" : "Facebook",
"content" : "LOLOLOLOL",
"votes" : {
"up" : [ ],
"down" : [ ]
},
"date" : ISODate("2014-04-24T17:39:49.782Z"),
}
],

是否可以使用名为“scores”的新字段更新此嵌套数组?像这样的东西。

 "comments" : [
{
"name" : "john",
"title" : "Facebook",
"content" : "LOLOLOLOL",
"votes" : {
"up" : [ ],
"down" : [ ]
},
"date" : ISODate("2014-04-24T17:39:49.782Z"),
"scores": 50
}
],

我已经尝试过这种方法,但似乎无法使其发挥作用

       // get up vote, down vote to calculate 
posts.findOne({'comments': { $elemMatch: { permalink: data.permalink } } },function(err, data){
var ups = data.votes.up.length;
var downs = data.votes.down.length;
var marks = favourite(ups,downs);
var scores = {
"comments.$.scores":marks
}
// insert the scores in a nested array as new field.
posts.update({'comments': { $elemMatch: { permalink: data.permalink } } },{$set:scores},{upsert:true}, function(err, post) {
"use strict";
if (err) console.log(err)
});
});

最佳答案

db.yourCollection.update({comments:  {$elemMatch:{ name:"john"} } }},{$set:{"comments.$.scores":50}},{multi:true});

但是,只会修改每个文档的嵌套数组中第一个匹配的元素

关于javascript - 如何在嵌套数组中更新插入新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23580338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com