小编Kei*_*rsh的帖子

在流上腌制C#MD5 ComputeHash

我看不出任何方法来加密MD5.ComputeHash(Stream).我错过了一些将字节注入HashAlgorithm的方法吗?

我在执行流计算之前尝试执行ComputeHash(byte []),但不出所料,它没有任何效果.任何想法(除了修改文件)?

谢谢你的时间.

附录 只是为了更具体一点,我想使用一个流来获取一个我不想加载到内存中的大文件的哈希值.

FileInfo myFI= new FileInfo("bigfile.dat");
FileStream myIFS = piFile.OpenRead();
MD5 md5 = MD5.Create();
byte[] hash = md5.ComputeHash ( myIFS );
myIFS.Close ();
Run Code Online (Sandbox Code Playgroud)

c# hash md5 stream salt

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

我该如何在可能不存在的字段列表中添加$

我有一个具有以下结构的文档,在获取前10个软件包的过程中,我希望获得过去2个月的总计2013.5和2013.4。

如果我使用聚合

db.hits.aggregate(
    {$project:{"total":{"$add":["$value.2013.5", "$value.2013.4"]}}})
Run Code Online (Sandbox Code Playgroud)

仅当两个字段都存在于文档中时,这才返回总计的数值。如果缺少任何字段,则total的值为null。关于如何解决这个问题的任何想法。$ project之后有$ group,$ sort,$ limit,但是为了清楚起见,我省略了它们。

{
  "_id" : "4e6eef33-d88a-4d4d-a6b2-6becf1be7e8f",
  "value" : {
    "package" : 4498
    "2012" : {
      "1" : 1.0,
      "2" : 1.0,
      "4" : 1.0,
      "6" : 4.0,
      "7" : 2.0,
      "8" : 5.0,
      "12" : 1.0,
      "hits" : 15.0
    },
    "2013" : {
      "1" : 6.0,
      "4" : 2.0,
      "hits" : 8.0
    },
    "hits" : 23.0
  }
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我仅用两个月来进行说明。我通常会使用12个月。

编辑:我的后备是写一个函数来添加文档中缺少的字段。我很想知道是否有办法避免这样做。

mongodb aggregation-framework

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

标签 统计

aggregation-framework ×1

c# ×1

hash ×1

md5 ×1

mongodb ×1

salt ×1

stream ×1