我在舞台上有这个单纯形阵列的例子
// Manual unlocking is done before notifying, to avoid waking up
// the waiting thread only to block again (see notify_one for details)
lk.unlock();
cv.notify_one();
我想在项目中得到这个输出
df[list_cols] = df[list_cols].fillna(0)
我正在尝试类似的事情
equipaments: [
{id: 1, number: 1029393, card: 12333},
{id: 2, number: 1029394, card: 12334},
{id: 3, number: 1029395, card: 12335}
]
答案 0 :(得分:2)
在这种情况下,应使用$map
而不是$reduce
来变换数组中的每个项目。
语法非常相似:
db.collection.aggregate([
{
$project: {
"equipaments": {
$map: {
input: "$equipaments",
as: "eqp",
in: {
$concat: [
{
$toString: "$$eqp.number"
},
"-",
{
$toString: "$$eqp.card"
}
]
}
}
}
}
}
])
如果number
和card
存储为Int / Long / Double,则需要先将它们转换成字符串。请注意,$toString
运算符需要MongoDB 4.0
输出:
[
{
"_id": ObjectId("5a934e000102030405000000"),
"equipaments": [
"1029393-12333",
"1029394-12334",
"1029395-12335"
]
}
]