我试图将包含数值的字符串转换为MongoDB中的聚合查询中的值.
文件示例
{
"_id": ObjectId("5522XXXXXXXXXXXX"),
"Date": "2015-04-05",
"PartnerID": "123456",
"moop": "1234"
}
Run Code Online (Sandbox Code Playgroud)
我使用的聚合查询的示例
{
aggregate: 'my_collection',
pipeline: [
{$match: {
Date :
{$gt:'2015-04-01',
$lt: '2015-04-05'
}}
},
{$group:
{_id: "$PartnerID",
total:{$sum:'$moop'}
}}]}
Run Code Online (Sandbox Code Playgroud)
结果在哪里
{
"result": [
{
"_id": "123456",
"total": NumberInt(0)
}
}
Run Code Online (Sandbox Code Playgroud)
如何将字符串转换为其数值?
在MongoDB聚合框架中,我希望在对象(即JSON集合)上使用$ unwind运算符.看起来这不可能,是否有解决方法?有计划实施吗?
例如,从聚合文档中获取文章集合.假设有一个额外的字段"评级"是来自用户 - >评级的地图.你能算出每个用户的平均评分吗?
除此之外,我对聚合框架非常满意.
更新:这是每个请求的JSON集合的简化版本.我正在存储基因组数据.我不能真正使基因型成为一个数组,因为最常见的查找是获取随机人的基因型.
variants: [
{
name: 'variant1',
genotypes: {
person1: 2,
person2: 5,
person3: 7,
}
},
{
name: 'variant2',
genotypes: {
person1: 3,
person2: 3,
person3: 2,
}
}
]
Run Code Online (Sandbox Code Playgroud)