小编Xav*_*hot的帖子

在mongodb shell上更新forEach

我有一个有2条记录的集合aTable:

 {
    "title" : "record 1",
    "fields" : [ 
        {
            "_id" : 1,
            "items" : [ 
                1
            ]
        },
        {
            "_id" : 2,
            "items" : [ 
                2,3,4
            ]
        },
        {
            "_id" : 3,
            "items" : [ 
                5
            ]
        }
    ]
},

{
        "title" : "record 2",
        "fields" : [ 
            {
                "_id" : 4,
                "items" : [ 
                    7,8,9,10
                ]
            },
            {
                "_id" : 5,
                "items" : [ 

                ]
            },
            {
                "_id" : 6,
                "items" : [ 
                    11,12
                ]
            } …
Run Code Online (Sandbox Code Playgroud)

javascript mongodb mongo-shell

22
推荐指数
3
解决办法
4万
查看次数

Python二项式系数

import math
x = int(input("Enter a value for x: "))
y = int(input("Enter a value for y: "))

if y == 1 or y == x:
    print(1)

if y > x:
    print(0)        
else:
    a = math.factorial(x)
    b = math.factorial(y)
    div = a // (b*(x-y))
    print(div)  
Run Code Online (Sandbox Code Playgroud)

这个二项式系数程序可以工作但是当我输入两个相同的数字时,它应该等于1,或者当y大于x时它应该等于0.如果有人可以帮助我,程序需要稍微调整一下

python python-3.x

22
推荐指数
4
解决办法
7万
查看次数

功能尝试和捕获与Scala

是否有更多的自动方式在Scala中打开资源并将方法应用于此方法(直接从java转换),使用__CODE__但也包括finally等.

var is: FileInputStream = null
try {
  is = new FileInputStream(in)
  func(is)
} catch {
  case e: IOException =>
    println("Error: could not open file.")
    println("       -> " + e)
    exit(1)
} finally {
  if(is) is.close()
}
Run Code Online (Sandbox Code Playgroud)

functional-programming scala

21
推荐指数
3
解决办法
2万
查看次数

Scala Map来自元组可迭代

scala.collection.Map从其他馆藏构建,我经常发现自己写作:

val map = Map(foo.map(x=>(x, f(x)))
Run Code Online (Sandbox Code Playgroud)

但是,由于Map.apply只接受变量参数,因此这不起作用- 所以我必须写:

val map = Map(foo.map(x=>(x, f(x)) toSeq :_*)
Run Code Online (Sandbox Code Playgroud)

得到我想要的东西,但这看起来很痛苦.有没有比MapIterable元组构造一个更漂亮的方法?

scala scala-collections

21
推荐指数
2
解决办法
2万
查看次数

将日期从毫秒转换为ISODate对象

我试图按小时聚合MongoDB colloection中的记录,并需要将存储为timestamp(毫秒)的日期转换为ISODate,以便我可以使用聚合框架的内置日期运算符($ hour,$ month等)

记录存储为

{ 
"data" : { "UserId" : "abc", "ProjId" : "xyz"}, 
"time" : NumberLong("1395140780706"),
"_id" : ObjectId("532828ac338ed9c33aa8eca7") 
} 
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下类型的聚合查询:

db.events.aggregate(
    { 
       $match : { 
         "time" : { $gte : 1395186209804, $lte : 1395192902825 } 
       } 
    }, 
    { 
       $project : {
         _id : "$_id", 
         dt : {$concat : (Date("$time")).toString()} // need to project as ISODate
       } 
    },
    // process records further in $project or $group clause
)
Run Code Online (Sandbox Code Playgroud)

产生以下形式的结果:

{
    "result" : [
        { 
            "_id" : ObjectId("5328da21fd207d9c3567d3ec"), 
            "dt" …
Run Code Online (Sandbox Code Playgroud)

javascript type-conversion mongodb aggregation-framework

21
推荐指数
2
解决办法
1万
查看次数

将scala.math.BigDecimal转换为java.math.BigDecimal?

我如何将a转换scala.math.BigDecimaljava.math.BigDecimal

scala bigdecimal

20
推荐指数
1
解决办法
7000
查看次数

SCALA:使用".contains()"或".exists()"时哪种情况下哪种数据结构是最佳的?

我想知道在哪些情况下哪些数据结构最适合使用"包含"或"存在"检查.

我问,因为我来自Python背景,并习惯于使用if x in something:表达式.例如,哪些表达式评估最快:

val m = Map(1 -> 1, 2 -> 2, 3 -> 3, 4 -> 4)
                                          //> m  : scala.collection.immutable.Map[Int,Int] = Map(1 -> 1, 2 -> 2, 3 -> 3, 4
                                          //|  -> 4)
val l = List(1,2,3,4)                     //> l  : List[Int] = List(1, 2, 3, 4)
val v = Vector(1,2,3,4)                   //> v  : scala.collection.immutable.Vector[Int] = Vector(1, 2, 3, 4)

m.exists(_._1 == 3)                       //> res0: Boolean = true
m.contains(3)                             //> res1: Boolean = true …
Run Code Online (Sandbox Code Playgroud)

performance scala data-structures scala-collections

19
推荐指数
1
解决办法
3600
查看次数

如何将Java流转换为Scala流

作为将Java代码转换为Scala代码的努力的一部分,我需要将Java流转换Files.walk(Paths.get(ROOT))为Scala.我无法通过谷歌搜索找到解决方案.asScala不会这样做.任何提示?

以下是相关代码:

import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.methodOn;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Collectors;

....
   Files.walk(Paths.get(ROOT))
            .filter(path -> !path.equals(Paths.get(ROOT)))
            .map(path -> Paths.get(ROOT).relativize(path))
            .map(path -> linkTo(methodOn(FileUploadController.class).getFile(path.toString())).withRel(path.toString()))
            .collect(Collectors.toList()))
Run Code Online (Sandbox Code Playgroud)

Files.walk(Paths.get(ROOT))返回类型是Java中的Stream.

scala scala-java-interop java-8

19
推荐指数
3
解决办法
1万
查看次数

java.util.Iterator到Scala列表?

请耐心等待,我对斯卡拉来说还是很吵.我有以下代码:

private lazy val keys: List[String] = obj.getKeys().asScala.toList
Run Code Online (Sandbox Code Playgroud)

obj.getKeys返回一个java.util.Iterator

根据文档通过JavaConverers(导入)调用asScala ..

java.util.Iterator <==> scala.collection.Iterator 
Run Code Online (Sandbox Code Playgroud)

scala.collection.Iterator定义

def toList: List[A] 
Run Code Online (Sandbox Code Playgroud)

基于此,我认为这应该可行,但这里是编译错误.

[scalac]  <file>.scala:11: error: type mismatch;
[scalac]  found   : List[?0] where type ?0
[scalac]  required: List[String]
[scalac]  private lazy val keys : List[String] = obj.getKeys().asScala.toList
[scalac]  one error found
Run Code Online (Sandbox Code Playgroud)

我理解类型参数或java Iterator是一个Java字符串,我试图创建一个Scala字符串列表,但(或许天真地)认为会有一个隐式转换.

scala scala-java-interop scala-collections

18
推荐指数
2
解决办法
2万
查看次数

mongo:聚合$ project中的新Date()

对于我的一个集合,它必须保持unix时间戳而不是isodate,我通常将时间戳转换为新的Date(unix_timestamp).

现在我需要new Date(ts)聚合.(示例是在PHP中)

'$ project'=> array('day'=>'$ new Date(ts)',...

'$ group'=> array("_ id"=> array('day'=>'$ day)',...),...

没有到达结果.结果中的字段"日"完全丢失.

如何在聚合中转换?

mongodb aggregation-framework

18
推荐指数
2
解决办法
2万
查看次数