- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
MongoDb 版本 3.4.4
如何为数组快照中的每个对象聚合一个新键“total”,其值是“course”和“quantity”的乘积。
示例文档:
{
cur: "EUR",
snapshot: [
{
id: "24352345",
course: 58.12,
quantity: 13
},
{
id: "34552345",
course: 18.12,
quantity: 63
}
]
}
期望的结果:
{
cur: "EUR",
snapshot: [
{
id: "24352345",
course: 58.12,
quantity: 13,
total: 755.56
},
{
id: "34552345",
course: 18.12,
quantity: 63,
total: 1141.56
}
]
}
第一次尝试:
db.mycoll.aggregate([{
$addFields: {
"snapshot.total": {
$multiply:["$snapshot.quantity", "$snapshot.course"]
}
}
}])
"errmsg": "$multiply 只支持数值类型,不支持数组"
第二次尝试:
db.mycoll.aggregate( [
{ "$addFields": {
"snapshot.total": {
"$map": {
"input": "$snapshot",
"as": "row",
"in": { "$multiply": [
{ "$ifNull": [ "$$row.quantity", 0 ] },
{ "$ifNull": [ "$$row.course", 0 ] }
]}
}
}
}}
])
'total' 的不需要的值是一个包含所有对象总和的数组:
{
cur: "EUR",
snapshot: [
{
id: "24352345",
course: 58.12,
quantity: 13,
total: [
755.56,
1141.56
]
},
{
id: "34552345",
course: 18.12,
quantity: 63,
total: [
755.56,
1141.56
]
}
]
}
最佳答案
使用 $map
operator 修改您的第二次尝试将整个快照嵌入文档与其字段映射为
db.mycoll.aggregate([
{
"$addFields": {
"snapshot": {
"$map": {
"input": "$snapshot",
"as": "row",
"in": {
"id": "$$row.id",
"course": "$$row.course",
"quantity": "$$row.quantity",
"total": { "$multiply": [
{ "$ifNull": [ "$$row.quantity", 0 ] },
{ "$ifNull": [ "$$row.course", 0 ] }
]}
}
}
}
}
}
])
关于MongoDb $addFields inside arrays $multiply 数组中的两个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43951945/
以下函数作为本练习的介绍,说明了用加法定义的乘法。这是最简单的“容易写下来”的递归定义。 (define (star a b) (if (= b 0) 0 (+ a (st
不知道这个操作叫什么,谷歌也没有帮助。 假设我有两个像这样的简单数据框: df1 df1 factor1 1 a 2 b 3 c > df2 factor
我有这个 cobol 程序,用于计算阶乘: IDENTIFICATION DIVISION. PROGRAM-ID. Factorial-hopefully. AUTHOR. Dar
作为我正在学习的测试优先 ruby 类(class)的一部分,我需要制作一个基本的乘法方法,该方法首先采用 2 个参数并将它们相乘,但之后 rspec 测试将多个数字相乘的能力同样的方法。 我只想
题目地址:https://leetcode.com/problems/multiply-strings/description/ 题目描述 Given two non-negative integ
我正在尝试在 Java 中实现 np.multiply 并且我对它实际在做什么感到困惑。该文档只是说明它进行元素乘法。它与我能找到的任何数学矩阵乘积都不匹配。它部分匹配元素方式的 Hadamard 乘
这个问题在这里已经有了答案: Transpose / reshape dataframe without "timevar" from long to wide format (9 个回答) 关闭2年
我有一些复选框,选中后会更新底部的总价,它们效果很好。不过,我还添加了一个单独的输入字段来输入数量。我试图让该数量乘以输入字段的值。现在我只有将文本输入字段添加到总数中的代码,而不是将其乘以旁边的字段
我正在尝试在 MongoDB 中使用 $multiply 运算符。 第 1 步 db.message1064sd_00011_3744.aggregate([ {$project : {
我有两本字典,一本在代码主体中,一本在输入中。我想比较两个字典,如果键相同,我想相乘并打印值。下面是我迄今为止编写的代码。 dict_a = { 'r':100, 'y':110,
>>> a = [] >>> b = [a*2] >>> b [[]] >>> b = [copy.deepcopy(a)*2] >>> b [[]] 我正在尝试将 b 创建为由 a 的两个副本组成的
我在一个数据库中有几个 mysql 表。 目前我正在对我的网站进行整理测试,其中一个是测试一个沉重的数据库,看看这对性能(搜索)有多大影响。 该网站是一个分类网站。我需要很长时间才能一次插入一个分类以
我有一些代码要运行数千次,想知道什么更快。array 是一个包含 30 个值的短数组,它始终包含 0、1 或 2。 result = (array[29] * 68630377364883.0)
好的,所以我有这样的东西: SendKeys.send("blah" + "{BS}") 我想多次退格“{BS}”,例如有一个变量,我可以将“{BS}”乘以退格一定次数,我该怎么做? 我知道可以在 P
实现大整数乘法 使用整数数组来存储一个 biginteger 像 297897654 将存储为 {2,9,7,8,9,7,6,5,4} 实现 bigintegers 的乘法函数 例子:{2, 9, 8
这个问题在这里已经有了答案: Numpy np.multiply vs *-Operator [duplicate] (2 个回答) 3年前关闭。 numpy.multiply documentati
我正在尝试使用 Transform.multiply4x4() 移动表面修改器,但它似乎没有按预期工作。我试图旋转一个几乎平坦的表面,然后将其发送到远处。我的代码如下所示 myModif
我希望使用 SIMD 指令一次将寄存器中的所有 32 位整数相乘,这是我目前尝试的方法: int32_t a [8] = {1, 2, 3, 4, 5, 6, 7, 8}; int32_t b
尝试在 4 个表(项目、任务、支出和捐赠)上运行简单的内连接查询。连接似乎在某处缠结。例如,SUM(tasks.budget_amount) 应该给出 3,211,385.21 的组合值,但我得到的是
我知道 NaN 的意思不是数字,但我不明白我是如何得到这个错误的。我正在做的是引用来 self 的形状类的我的形状对象的顶点值,并在我的渲染器类中使用它们。当我在 logcat 上打印出顶点的值时,我
我是一名优秀的程序员,十分优秀!