Оператор $ push добавляет указанное значение в массив.
{ $push: {
: , ... } } $ push добавляет поле массива со значением как своим элементом.
Выше ответ отвечает всем требованиям, но я получил его работу, выполнив следующие
var objFriends = { fname:"fname",lname:"lname",surname:"surname" }; Friend.findOneAndUpdate( { _id: req.body.id }, { $push: { friends: objFriends } }, function (error, success) { if (error) { console.log(error); } else { console.log(success); } }); )
Вот ответ, используя tidyverse
методы из dplyr
и tidyr
library(tidyverse)
df <- data.frame(ca = c("a","b","a","c","b", "b"),
f = c(3,4,0,NA,3, 4),
f2 = c(NA,5,6,1,9, 7),
f3 = c(3,0,6,3,0, 8))
df %>%
replace_na(list(f = 0, f2 = 0)) %>%
mutate(f_new = f + f2)
#> ca f f2 f3 f_new
#> 1 a 3 0 3 3
#> 2 b 4 5 0 9
#> 3 a 0 6 6 6
#> 4 c 0 1 3 1
#> 5 b 3 9 0 12
#> 6 b 4 7 8 11
Dplyr может сделать это довольно хорошо с помощью следующего кода. Строка позволяет вам рассматривать каждую строку отдельно. И команда mutate суммирует любые столбцы, которые вы хотите. na.rm = TRUE обрабатывает проблему, когда у вас есть NA и вы хотите их игнорировать. Как упоминалось в комментарии, если у вас его нет, он даст вам NA, если он находится в любом из суммированных значений.
library(dplyr)
df %>%
rowwise() %>%
mutate(f_new = sum(f,f2, na.rm = TRUE))