小编Dan*_*Dan的帖子

Mongo聚合游标和计数

根据mongodb节点驱动程序文档,聚合函数现在返回一个游标(从2.6开始).

我希望我可以使用它来获取前限和跳过的项目数,但似乎没有任何计数功能在创建的光标上.如果我在mongo shell中运行相同的查询,则游标有一个itcount函数,我可以调用它来获取我想要的内容.

我看到创建的游标有一个on数据事件(这是否意味着它是一个CursorStream?)似乎触发了预期的次数,但如果我将它与cursor.get一起使用,则没有结果传递给回调函数.

可以使用新的光标功能来计算聚合查询吗?

编辑代码:

在mongo shell中:

> db.SentMessages.find({Type : 'Foo'})
{ "_id" : ObjectId("53ea19af9834184ad6d3675a"), "Name" : "123", "Type" : "Foo" }
{ "_id" : ObjectId("53ea19dd9834184ad6d3675c"), "Name" : "789", "Type" : "Foo" }
{ "_id" : ObjectId("53ea19d29834184ad6d3675b"), "Name" : "456", "Type" : "Foo" }

> db.SentMessages.find({Type : 'Foo'}).count()
3

> db.SentMessages.find({Type : 'Foo'}).limit(1)
{ "_id" : ObjectId("53ea19af9834184ad6d3675a"), "Name" : "123", "Type" : "Foo" }

> db.SentMessages.find({Type : 'Foo'}).limit(1).count();
3

> db.SentMessages.aggregate([ { $match : { …
Run Code Online (Sandbox Code Playgroud)

javascript mongodb node.js mongodb-query

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

测试ng-if使用$ compile

我试图在我的一个模板中测试ng-if,通过针对预定义的范围编译视图并运行$ scope.$ digest.

无论我的条件是真实的还是假的,我发现编译后的模板都是一样的.我希望编译的html在falsy时删除ng-if dom元素.

beforeEach(module('templates'));
beforeEach(inject(function($injector, $rootScope){
    $compile = $injector.get('$compile');
    $templateCache = $injector.get('$templateCache');
    $scope = $rootScope.$new();
    template = angular.element($templateCache.get('myTemplate.tpl.html'));
}));

afterEach(function(){
    $templateCache.removeAll();
});

it ('my test', function(){
    $scope.myCondition = true;
    $compile(template)($scope);
    $scope.$digest();


    expect(template.text()).toContain("my dom text");
    // true and false conditions both have the same effect
});
Run Code Online (Sandbox Code Playgroud)

这是一个试图展示正在发生什么的傻瓜(不知道如何在plunkr中测试,所以我在控制器中完成了它)http://plnkr.co/edit/Kjg8ZRzKtIlhwDWgB01R?p=preview

angularjs

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

如何忽略c#signalr客户端中的https证书警告?

我正在尝试使用无效证书连接到SignalR服务器.不出所料我收到以下错误:

    System.Net.Http.HttpRequestException : An error occurred while sending the request.
----> System.Net.WebException : The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
  ----> System.Security.Authentication.AuthenticationException : The remote certificate is invalid according to the validation procedure.
Run Code Online (Sandbox Code Playgroud)

使用正常的.Net,HttpClient您可以使用WebRequestHandler具有ServerCertificateValidationCallback委托的构造它,允许您更改证书验证行为.SignalR HttpClient似乎没有这个.

c# signalr

10
推荐指数
2
解决办法
3261
查看次数

承诺和不规则的回调

我正在玩一个使用蓝鸟的承诺控制流程.Bluebird提供了一个.promisify()方法,用于将常规回调函数转换为promise函数,但我不清楚当函数不规则时我应该做什么.例如,requestjs请求的方法签名是

request(url, callback)
Run Code Online (Sandbox Code Playgroud)

回调的地方

err, res, body
Run Code Online (Sandbox Code Playgroud)

而不是常规

err, res
Run Code Online (Sandbox Code Playgroud)

我应该如何将此转换为承诺?

javascript control-flow node.js bluebird

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

有条件的gulp连接多个任务

我有一个名为build的gulp任务,它使用子任务将我的源的各个部分移动到build文件夹:

gulp.task('build', ['jshint', 'templates', 'app', 'components', 'stylesheets', 'assets', 'index']);

gulp.task('app', ['clean-app'], function(){
    return gulp.src(config.inputs.app)
        .pipe(gulp.dest(config.outputs.root));
});
Run Code Online (Sandbox Code Playgroud)

然后我想在--env = prod时添加一些额外的步骤,我用gulp-if做了:

gulp.task('app', ['clean-app'], function(){
    return gulp.src(config.inputs.app)
        **.pipe(gulpif(env === 'prod', uglify()))**
        .pipe(gulp.dest(config.outputs.root));
});
Run Code Online (Sandbox Code Playgroud)

这很好用.我想做的最后一件事就是从这些子任务中吞下所有js文件.我想我可以使用gulpif从每个任务返回一个流而不是去gulp.dest,但我仍然需要以某种方式有条件地运行一个任务来组合这些流和concat.

有一个更好的方法吗?

gulp

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

EC2 实例未加入 ECS 集群

我有一个 EC2 集群,我正在尝试向其中添加 EC2 机器。

我已经加入ECS_CLUSTER=cluster_name/etc/ecs/ecs.config用户数据,但实例不加入群集。

我正在寻找日志文件或集群加入过程的任何其他证据,这些证据可能表明我的实例未加入的原因。我没有/var/log/ecs文件夹。

amazon-ec2 amazon-web-services amazon-ecs

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

如何在ECS上为运行UDP服务的容器添加别名?

我正在尝试在容器中运行logstash来对抗ECS,它将通过UDP侦听日志消息.

我希望我的应用程序能够将消息发送到例如logging.mydomain.com,而无需知道可能更改的基础IP.

通常我会CNAME一个ELB,但ELB不支持UDP.我是否需要在此处进行某种服务发现,或者我能做些什么更简单的事情?

amazon-web-services amazon-ecs

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

如何获取弹性负载均衡器 dns 名称?

我通过 terraform 创建了一个弹性豆茎环境。我想添加一个指向负载均衡器 dns 的 route53 记录,但我不知道如何从 EB 环境的输出中获取完整的 url。

aws_elastic_beanstalk_environment.xxx.load_balancers 属性包含名称但不包含FQDN。

terraform

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

索引视图:Union All/Full Join替代方案

我有两个表都有一个'Name'列.这些表彼此无关.我想在这两列中强制实现唯一性.

我一直在尝试从两列创建一个索引视图,但发现我不能使用union all或完全连接来获取完整的名称列表.我觉得我错过了一个明显的选择,它允许我添加唯一索引.

sql-server sql-server-2008-r2

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