【发布时间】:2017-06-26 18:30:34
【问题描述】:
所以这里有一个问题。我想做的是给定一组输入值生成一个数据结构。
由于这是多语言提交,让我们将输入列表视为键/值对数组。因此,哈希、映射、字典或任何漂浮在你船上的术语的数组。我将这里的所有符号保留为 JSON,希望它足够通用,可以翻译/解码。
所以对于输入,假设我们有这个:
[ { "4": 10 }, { "7": 9 }, { "90": 7 }, { "1": 8 } ]
可能有点多余,但让我们坚持下去。
所以从那个输入,我想得到这个结构。我给出了一个完整的结构,但 important 部分是 "weight" 下的值返回的内容:
[
{ "$project": {
"user_id": 1,
"content": 1,
"date": 1,
"weight": { "$cond": [
{ "$eq": ["$user_id": 4] },
10,
{ "$cond": [
{ "$eq": ["$user_id": 7] },
9,
{ "$cond": [
{ "$eq": ["$user_id": 90] },
7,
{ "$cond": [
{ "$eq": ["$user_id": 1] },
8,
0
]}
]}
]}
]}
}}
]
因此,我正在寻找的解决方案通过使用 输入 来填充结构中“重量”的结构内容,如图所示。
是的,结构中看起来像数字的值必须是数字而不是字符串,因此无论采用何种语言实现,JSON 编码版本必须看起来完全相同。
或者,给我一个更好的方法来获得相同的结果,即根据匹配的user_id 分配 权重 值。
有没有人有办法解决这个问题?
对任何语言实现都会感到满意,因为我认为看看如何创建结构是公平的。
我会尝试添加自己,但要感谢良好的实现。
编码愉快。
【问题讨论】:
-
哦,如果您投了反对票或未投赞成票,请给出合理的解释。现实情况是这样的结构需要生成,所以如果您不理解,请提出问题或继续前进。我的政策是自己解释,以便内容可以更改或根本不做任何事情。即使你不明白,其他人也可能明白这一点。
标签: mongodb aggregation-framework