首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB数据集:对没有减少或与脚本有关的问题

MongoDB数据集:对没有减少或与脚本有关的问题
EN

Stack Overflow用户
提问于 2018-10-20 21:46:47
回答 1查看 81关注 0票数 4

我对编程和mongoDB很陌生,在学习过程中,我正在尝试使用mapreduce数据集上使用mongoDB。到目前为止,我已经将csv转换为json,并使用罗盘将其导入到mongoDB中。

在罗盘上,现在的数据如下所示:

代码语言:javascript
复制
_id     :5bc4e11789f799178470be53
    slug    :"bitcoin"
    symbol  :"BTC"
    name    :"Bitcoin"
    date    :"2013-04-28"
    ranknow :"1"
    open    :"135.3"
    high    :"135.98"
    low     :"132.1"
    close   :"134.21"
    volume  :"0"
    market  :"1500520000"
    close_ratio :"0.5438"
    spread  :"3.88"

我将每个值加为如下的索引,这是正确的过程吗?这样我就可以对数据运行mapreduce了吗?

db.testmyCrypto.getIndices() { "v“:2,"key”:{ "_id“:1 },"name”:"id","ns“:"myCrypto.testmyCrypto”},{ "v“:2,"slug_1","ns“:"myCrypto.testmyCrypto”},{ "v“:2,”键“:{”符号“:2 },"name“:"symbol_2","ns”:"myCrypto.testmyCrypto“},{ "v”:2,"key“:{ "name”:3 },"name“:"name_3","ns“:"myCrypto.testmyCrypto”},{ "v“:2,"key”:{ "data“:4 },"name”:"data_4","ns“:"myCrypto.testmyCrypto”},{ "v“:2,"key”:{ "ranknow“:4 },"name”:"ranknow_4","ns“:"myCrypto.testmyCrypto”},{ "v“:2,"ranknow_5","ns“:"myCrypto.testmyCrypto”},{ "v“:2,"key”:{ "open“:6 },"name“:"open_6","ns”:"myCrypto.testmyCrypto“},{ "v”:2,"key“:{ "high”:7 },"name“:"high_7","ns“:"myCrypto.testmyCrypto”},{ "v“:2,"key”:{ "low“:8 },"name”:"low_8","ns“:"myCrypto.testmyCrypto”},{ "v“:2,”键“:{”卷“:9 },”名称“:"volume_9","ns”:"myCrypto.testmyCrypto“},{ "v”:2,"market_10","ns“:"myCrypto.testmyCrypto”},{ "v“:2,"key”:{ "close_ratio“:11 },“名称”:"close_ratio_11","ns“:"myCrypto.testmyCrypto”},{ "v“:2,”键“:{”扩散“:13 },”名称“:"spread_13","ns“:"myCrypto.testmyCrypto”}

我已经刮了上面的东西,现在我做了下面的链接到地图-还原。有人吗,这是正确的输出吗?

代码语言:javascript
复制
> db.testmyCrypto.mapReduce(function() { emit( this.slug, this.symbol ); }, function(key, values) { return Array.sum( values ) },
... {
... query: { date:"2013-04-28" },
... out: "Date 04-28"
... }
... )
{
    "result" : "Date 04-28",
    "timeMillis" : 837,
    "counts" : {
        "input" : 0,
        "emit" : 0,
        "reduce" : 0,
        "output" : 0
    },
    "ok" : 1
}

我添加了“键值对”,但我似乎无法从数据中获得任何信息。

代码语言:javascript
复制
> db.testmyCrypto.mapReduce(function() { emit( this.slug, this.symbol, this.name, this.date, this.ranknow, this.open, this.high, this.low, this.close, this.volume, this.market, this.close_ratio, this.spread ); }, function(key, values) { return Array.sum( values ) }, { query: { slug:"bitcoin" }, out: "Date 04-28" } )

{“结果”:“日期04-28","timeMillis”:816, “计数”:{“输入”:0,“发出”:0,“还原”:0,“输出”:0 },“确定”:1 }

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-01 08:09:00

如果您试图求和某些值,那么它们就需要数值(当您将数据导入mongo时,尝试设置值的类型)

代码语言:javascript
复制
db.collectionName.mapReduce(
    function() { 
        emit( 
            this.slug, 
            this.open 
        ) 
    }, 
    function(keySlug, valueOpen) { 
        return Array.sum(valueOpen) 
    },
    {
        query: { date:"2013-04-28" },
        out: "Date 04-28"
    }
)

此查询将返回按日期筛选的每个段塞的打开值之和。

ps。对于聚合,您可以做同样的事情。

如果你有什么问题告诉我。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52910397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档