小编Ede*_*uer的帖子

EC2:EBS设备ID混淆(/ dev/sdf vs./dev/xvdf)

我将一个EBS卷附加到我的EC2实例,将其转换为EXT3文件系统,并成功安装它.然而,最初我被抛弃了主要是因为AWS控制台说我的EBS设备ID是什么.

根据AWS控制台:

i-xxxxxxx :/dev/sdf (attached)
Run Code Online (Sandbox Code Playgroud)

我认为这意味着我附加的EBS设备ID是/ dev/sdf.因此,当我尝试使用此设备ID将设备转换为文件系统时,我收到以下错误消息.

ubuntu@ip-xx-xx-xx-xx:~$ mkfs -t ext3 /dev/sdf
mke2fs 1.42 (29-Nov-2011)
Could not stat /dev/sdf --- No such file or directory
The device apparently does not exist; did you specify it correctly?
Run Code Online (Sandbox Code Playgroud)

然后经过一段时间的研究,我找到了这篇文章然后通过运行 cat /proc/partitions 发现我的真实设备ID是/ dev/xvdf而不是/ dev/sdf.

我的问题是为什么AWS控制台在实际上是/ dev/xvdf时会说它是/ dev/sdf?我认为必须有一些合乎逻辑的解释.

filesystems amazon-ec2 amazon-ebs

37
推荐指数
1
解决办法
4万
查看次数

MongoDB聚合$项目

我将我们的Web服务器日志存储在MongoDB中,模式类似于以下内容:

[
  {  
    "_id" : 12345,
    "url" : "http://www.mydomain.com/xyz/abc.html",
    ....
  },
  ....
]
Run Code Online (Sandbox Code Playgroud)

$project在我开始通过聚合管道传递集合之前,我试图使用运算符重新整形此模式.基本上,我需要添加一个名为"type"的新字段,稍后将用于执行group-by.新领域的逻辑非常简单.

if "url" contains "pattern_A" then set "type" = "sales lead";
else if "url" contains "pattern_B" then set "type" = "existing client";
...
Run Code Online (Sandbox Code Playgroud)

我想它必须是这样的:

db.weblog.aggregate(
  { 
    $project : {
      type : { /* how to implement the logic??? */ }
    }
  }
);
Run Code Online (Sandbox Code Playgroud)

我知道如何使用map-reduce(通过将"keyf"属性设置为实现上述逻辑的自定义JS函数)来执行此操作,但现在我正在尝试使用新的聚合框架来执行此操作.我尝试使用表达式运算符实现逻辑,但到目前为止无法使其工作.任何帮助/建议将不胜感激!

mongodb aggregation-framework

6
推荐指数
1
解决办法
4360
查看次数

MongoDB Aggregation Framework $ group使用嵌套操作

我有几个数字字段需要聚合.假设我的文档结构如下:

_id: 1234,
numValue1: 10,
numValue2: 20,
numValue3: 30,
numValue4: 40
Run Code Online (Sandbox Code Playgroud)

如果我想使用其中一个数字字段向我的管道添加计算字段,我可以这样做:

db.myCollection.aggregate(
{ 
  $project : {
    someComputedField : { $add:["$numValue1", 15] }
  }
})
Run Code Online (Sandbox Code Playgroud)

如果我想根据其中两个字段添加一个计算字段,我知道我可以这样做:

db.myCollection.aggregate(
{ 
  $project : {
    someComputedField : { $add:["$numValue1", "$numValue2"] }
  }
})
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是如果我需要做$ numValue1 + $ numValue2 + $ numValue3 + $ numValue4?

或者更有趣的是$ numValue1*($ numValue2 + $ numValue3)/ $ numValue4?

mongodb aggregation-framework

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