我想计算两个字段的总和,然后在文档中创建新的字段,比如:“total sum”。但我不知道怎么做。都在MongoDB中。这里有一个例子:
const obj = {
name: 'John',
foo: {
fooA: 8753.19,
fooB: 8753.19,
},
bar: {
barA: 196.99,
barB: 196.99,
},
};
//Should be:
const obj = {
name: 'John',
foo: {
fooA: 8753.19,
fooB: 8753.19,
total: fooA+fooB
},
bar: {
barA: 196.99,
barB: 196.99,
total: barA+barB
},
};
如果它是mongodb特定的,那么这可能不能准确地解决问题,而只是一个完成工作的纯函数。
我编写了一个名为calc
的函数来解决您的问题,您可以传入obj
,它将返回您想要的输出。
注意这是非常具体的你的输入,所以如果你有不同的一个请让我知道。
函数calc
:
function calc(originalObj) {
const obj = {...originalObj};
for(const key in obj) {
if(key !== 'name') {
console.log(obj[key][`${key}A`], `${key}A`, obj)
obj[key].totalSum = obj[key][`${key}A`] + obj[key][`${key}B`];
}
}
return console.log(obj);
}
演示-https://mongoplayground.net/p/40dnymmneyu
使用$addfields添加新文件总计,使用$add计算值
db.collection.aggregate({
$addFields: {
"foo.total": { $add: [ "$foo.fooA", "$foo.fooB" ] },
"bar.total": { $add: [ "$bar.barA", "$bar.barB" ] }
}
})
输出
[
{
"_id": ObjectId("5a934e000102030405000000"),
"bar": {
"barA": 196.99,
"barB": 196.99,
"total": 393.98
},
"foo": {
"fooA": 8753.19,
"fooB": 8753.19,
"total": 17506.38
},
"name": "John"
}
]
我有一个类似这样的mongoDocument结构,注释字段作为嵌入文档。 我想添加 “newField” : “something” 到 嵌入的注释字段中 “cid” : “17426944” : 在java驱动程序中,我尝试了: 这里的问题是: 示例文档: 我需要什么 : 请帮帮我,谢谢vijay
我不得不向现有文档添加一个新字段/s。 下面是用于测试目的的过程AddNewField。 我做错了什么? 在调用fmongo.update后,我的收藏现在有两个文档!
如果我的问题不是很具体,下面是我想做的。我有一个计算器,它有两个JTextField,一个JLabel(“Answer=”),一个JTextField作为答案。 我有一个JButton数组(0到9),允许用户点击它们,将数字添加到JTextField中,光标在其中处于活动状态。。。这就是问题所在。我只能让两个文本字段中的一个向它们添加数字,或者两者都向彼此添加相同的数字。 例如,如果我点击一个按钮
我使用iText将数据填充到PDF中现有的AcroForm字段中。 我现在正在寻找将新的AcroForm字段添加到PDF的解决方案。iText是否可以做到这一点?如果是,我该如何做到这一点?
问题内容: 如果我的问题不是很具体,这就是我想要做的。我有一个具有两个JTextField,一个JLabel(“ Answer =”)和一个JTextField作为答案的计算器。 我有一个JButtons数组(0到9),允许用户单击它们以将数字添加到JTextField中,其中的光标处于活动状态…这是这里的问题。我只能让两个文本字段之一向它们添加数字,或者都向彼此添加相同的数字。 例如,如果我单击
假设我有两份文件。 一个是有大约2-3页的主模板。第二个只有一段文字与各种风格(粗体,斜体,下划线,字体大小等)。 我想用第二个文档中的段落替换模板中的一个参数。 null