小编Raf*_*nte的帖子

比较MongoDB中的两个日期字段

在我的收藏中,每个文档都有2个日期,修改和同步.我想找到那些修改>同步或同步不存在的那些.

我试过了

{'modified': { $gt : 'sync' }}
Run Code Online (Sandbox Code Playgroud)

但它没有表现出我的预期.有任何想法吗?

谢谢

datetime mongodb node.js mongodb-query aggregation-framework

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

使用MongoDB聚合计算计数和平均值

我有一个简单的数据库布局,如下所示:

client
    id
    sex (male/female)
    birthday (date)    

client
    id
    sex (male/female)
    birthday (date)  

(...)
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个汇总命令,输出我有多少男性和女性客户,我也想输出男性和女性的平均年龄,不确定我是否可以在同一个命令中执行此操作或我需要2个独立的?

// Count of males/females, average age
Clients.aggregate({
    $project : {"sex"      : 1,
            "sexCount" : 1,
            "birthday" : 1,
            "avgAge"   : 1
               } 
    },
    {
        $match: {"sex": {$exists: true}} 
    },
    {
        $group: {
                    _id      : "$sex",
            sexCount : { $sum: 1 },
            avgAge   : { $avg: "$birthday" },
            }
    },
    { $sort: { _id: 1 } }
    , function(err, sex_dbres) {
            if (err)
                throw err;
            else{ …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js aggregation-framework

5
推荐指数
2
解决办法
7348
查看次数

简单的肥皂调用失败(Nodejs,easysoap)

我在使用easysoap时遇到了一些问题(https://npmjs.org/package/easysoap),我一直无法找到太多的文档或人们谈论它,所以我希望你们中的一些人可以提供帮助:

我正在做一个这样简单的电话:

            var clientParams = {
                           host    : 'somewhere.com',
                           port    : '9001',
                           path    : '/somews.asmx',
                           wsdl    : '/somews.asmx?WSDL'
            };

            var clientOptions = {
                           secure : false 
            };

            //create new soap client
            var SoapClient = new soap.Client(clientParams, clientOptions);
            SoapClient.once('initialized', function() {

                           //successful initialized
                           SoapClient.once('soapMethod', function(data, header) {
                           });

                           console.log('call');

                           SoapClient.call({
                                           'method' : 'Execute',
                                           'params' : {
                                                           'ExecuteXML' : 1
                                           }}, function(attrs, err, responseArray, header){
                                           }
                           );
            });

            //initialize soap client
            SoapClient.init();  
Run Code Online (Sandbox Code Playgroud)

问题是我收到回复说我无权提出我的请求.但是如果我在浏览器http://somewhere.com:9001/somews.asmx中手动尝试相同的URL 它确实有效.

你知道我做错了什么吗?

许多人提前感谢.

如果您有任何其他节点模块知道这一点,请告诉我.我尝试使用node-soap,但在所有需要的依赖项中丢失了:python,Visual Studio …

soap soap-client node.js

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

MongoDb聚合中的条件展开?

我想弄清楚是否有办法在MongoDB的聚合框架中编写条件展开代码.

我有一个像这样的聚合命令:

models.Users.aggregate(
        {   // SELECT
        $project : { "sex" : 1,
                 "salesIndex":1
                }
        },
        {   // WHERE
            $match: {"salesIndex": {$gte: index}} 
        },              
        {   // GROUP BY y agregadores
            $group: {
                _id      : "$sex",
                sexCount : { $sum: 1 }
            }
        },
        { $sort: { sexCount: -1 } }
, function(err, dbres) {
         (...)
});
Run Code Online (Sandbox Code Playgroud)

我想按部门添加一个可选的过滤器.用户可以在一个或多个部门中,这是它在db中的样子:

user _id sex salesIndex部门{[d1,d2,d3]}

如果我想搜索特定部门的用户,我会编写$ unwind子句,然后按部门编写$ match.但是,我想对两个场景使用相同的聚合命令,如下所示:

models.Users.aggregate(
        {   // SELECT
        $project : { "sex" : 1,
                 "salesIndex":1
                }
        },
        {   // WHERE
            $match: …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb aggregation-framework

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

MongoDB/Mongoose:无法使用最简单的MapReduce

大家好我想做的就是获取每个不同departmentType的计数:

fnMap = function() { 
  emit(this.departments.departmentType, {typeCount:1} ); 
} 

fnReduce = function(key, values) { 
  var result = {typeCount: 0}; 
  values.forEach(function(value) {
    result.typeCount += value.brandCount;
  });

  return result;             
};


var command = {
mapreduce : "clients", 
query     : {"departments.departmentType": {$exists: true}},
map       : fnMap.toString(), 
reduce    : fnReduce.toString(),    
    //sort: {"departments.departmentType":1}, 
    out: {inline: 1}   
};

mongoose.connection.db.executeDbCommand(command, function(err, dbres) {

    }); 
Run Code Online (Sandbox Code Playgroud)

执行命令时,dbres.documents [0] .results只包含1个具有departmentTypes总数的项目,而不是包含每个departmentType及其计数的几个项目.

有什么想法我做错了什么?

此外,当我取消注释SORT行时,我收到错误"db assertion failure:无法创建游标...",我相信字段名称是正确写入的.

grouping mapreduce mongoose mongodb

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