小编Sle*_*aur的帖子

从Mongoose返回.populate()的某些字段

我在运行查询后从MongoDB返回了一个JSON值.问题是我不想返回与我的返回相关联的所有JSON,我尝试搜索文档并且没有找到正确的方法来执行此操作.我想知道如果可能的话,如果是的话,这样做的正确方法是什么.示例:在DB中

{
    user: "RMS",
    OS: "GNU/HURD",
    bearded: "yes",
    philosophy: {
        software: "FOSS",
        cryptology: "Necessary"
    },
    email: {
        responds: "Yes",
        address: "rms@gnu.org"
    },
    facebook: {}
}

{
    user: "zuckerburg",
    os: "OSX",
    bearded: "no",
    philosophy: {
        software: "OSS",
        cryptology: "Optional"
    },
    email: {},
    facebook: {
        responds: "Sometimes",
        address: "https://www.facebook.com/zuck?fref=ts"
    }
} 
Run Code Online (Sandbox Code Playgroud)

如果字段存在于用户,但是如果它不返回另一个字段,那么返回字段的正确方法是什么.对于上面的例子,我想返回[email][address]RMS的[facebook][address]字段和扎克伯格的字段.如果一个字段为空,我试图找到这个,但它似乎没有工作.

 .populate('user' , `email.address`)
  .exec(function (err, subscription){ 
    var key;
    var f;
    for(key in subscription){
      if(subscription[key].facebook != null  ){
          console.log("user has fb");
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

javascript json mongoose mongodb node.js

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

在内存中创建一个Zip文件

我正在尝试压缩文件(例如foo.csv)并将其上传到服务器.我有一个工作版本,它创建一个本地副本,然后删除本地副本.我如何压缩文件,以便我可以发送它而无需写入硬盘驱动器并完全在内存中执行?

java memory zip inputstream

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

在Ubuntu 14.04上升级Cabal

当我安装Haskell/GHC + cabal时,sudo apt-get我安装了cabal版本1.16.这显然不是最新版本.我如何升级至至少1.18版?我想这样做sudo apt-get updatesudo apt-get upgrade.

编辑:

此外,当我运行cabal install cabal-install它似乎"安装"版本1.20,但当我运行cabal -V它说cabal 1.16.0

cabal cabal-install ubuntu-14.04

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

用于循环优化的NodeJS

我知道在浏览器中最好是沿着

 for(var i=0, l=arr.length; i<l; i++){ }
Run Code Online (Sandbox Code Playgroud)

代替

 for(var i=0; i<arr.length; i++){ }
Run Code Online (Sandbox Code Playgroud)

但是,这在NodeJS中是正确的还是V8引擎对其进行了优化?

我知道在ecma-262 5.1 sec-15.4中数组长度定义为:

length属性的值在数值上大于名称为数组索引的每个属性的名称;每当创建或更改Array对象的属性时,都会根据需要调整其他属性以保持该不变性。

因此,如果长度不变,则此方法变慢的唯一原因是因为必须访问该属性。我正在寻找的是一个合理的示例/说明,该示例/说明将显示访问此属性时V8引擎(在NodeJS中使用)是否受到性能的影响。

javascript arrays v8 node.js

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

截断样式在<a>标签内不起作用,但适用于<div>和<p>标签

我试图截断从<a>标签显示的文本,但它不起作用.我将样式应用于其他标记样式,它确实有效(我看到的所有示例都没有使用<a>标记).我想知道是否有人可以向我解释为什么会发生这种情况(我不是最好的HTML/CSS)并帮助我实现它.这是我的代码.

如果它有助于知道我也在使用.less.

CSS:

.blockTrunc{
    width: 30px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<a class="blockTrunc" href="#" >
    <i class="icon " ></i>{{{this.foo}}}: test length adder <span>{{this.bar}}-{{this.fizz}}</span>
</a>
Run Code Online (Sandbox Code Playgroud)

html css less

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

NG-Click 在 Chrome 中不起作用,但在 FireFox 中起作用

我有一个 NG-Click 来更改页面上的元素数量(来自 API 调用)。NG-Click 使用在 FireFox 中工作的下拉框。但我最近发现,当同事开始使用该服务时,它在 Chrome 中不起作用。我不知道为什么它不起作用,任何帮助表示赞赏。我附上了一个带有代码的 JSFidle。

http://jsfiddle.net/pAy3B/

JavaScript:

app.controller("AppCtrl", function($http, $scope){
var app = this; 
$scope.toLoad=50;
$scope.page= 0;
$scope.sortArray = [];
$scope.filterList = "";

function getData(page){
    $http.get('/file/filter/' + $scope.toLoad + '/' + $scope.page + '?' + $scope.filterList ).success(function(data){
        app.info = data;
        console.log(data);
    });
}

$scope.changeLoad = function(toLoad){
    $scope.toLoad = toLoad;
    getData($scope.page)
}
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<body ng-app="app" ng-controller="AppCtrl as app" id="body">
<div id="main-table">

                <div class="widget-body no-padding">
                    <div id="select-more">
                        <select class="form-control" name="dt_basic_length" aria-controls="dt_basic" id="box-test" style="width:6%">
                            <option value="10" …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome angularjs angularjs-ng-click

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