小编Sha*_*Roy的帖子

如何使用lodash合并两个对象数组?

我有两个数组,一个共同的字段成员.如何轻松合并主题?

例如:

var arr1 = [{
  "member" : ObjectId("57989cbe54cf5d2ce83ff9d6"),
  "bank" : ObjectId("575b052ca6f66a5732749ecc"),
  "country" : ObjectId("575b0523a6f66a5732749ecb")
},
{
  "member" : ObjectId("57989cbe54cf5d2ce83ff9d8"),
  "bank" : ObjectId("575b052ca6f66a5732749ecc"),
  "country" : ObjectId("575b0523a6f66a5732749ecb")
}];

var arr2 = [{
    "member" : ObjectId("57989cbe54cf5d2ce83ff9d6"),
    "name" : 'xxxxxx',
    "age" : 25
},
{
    "member" : ObjectId("57989cbe54cf5d2ce83ff9d8"),
    "name" : 'yyyyyyyyyy',
    "age" : 26
}];
Run Code Online (Sandbox Code Playgroud)

预期:

var merge = [{
  "member" : ObjectId("57989cbe54cf5d2ce83ff9d6"),
  "bank" : ObjectId("575b052ca6f66a5732749ecc"),
  "country" : ObjectId("575b0523a6f66a5732749ecb"),
  "name" : 'xxxxxx',
  "age" : 25
},
{
  "member" : ObjectId("57989cbe54cf5d2ce83ff9d8"),
  "bank" …
Run Code Online (Sandbox Code Playgroud)

javascript lodash

27
推荐指数
2
解决办法
9万
查看次数

如何在javascript中通过ID合并多个对象数组?

我想将4个对象数组合并为一个数组

例如: 4个数组

var arr1 =[
  { memberID : "81fs", RatingCW:4.5},
  { memberID : "80fs", RatingCW:4},
  { memberID : "82fs", RatingCW:5 },
  { memberID : "83fs", RatingCW:3},
  { memberID : "84fs", RatingCW:4.7}
];
var arr2 =[
  { memberID : "80fs", ratingWW: 4},
  { memberID : "81fs", ratingWW: 4.5},
  { memberID : "83fs", ratingWW: 3},
  { memberID : "82fs", ratingWW: 5},
  { memberID : "84fs", ratingWW: 3.5}
];

var arr3 =  [
  { memberID : "80fs", incoCW:4},
  { memberID : "81fs", …
Run Code Online (Sandbox Code Playgroud)

javascript arrays lodash

7
推荐指数
3
解决办法
2533
查看次数

未处理的拒绝MongoError:无法连接到MongoDB中的服务器

Unhandled rejection MongoError: cannot connect to server在运行我的meanjs项目时得到了.

以前运行正常,但当更新nodejs 5.11.1,mongodb 3.2.6,"mongoose": "^4.4.16""connect-mongo": "^1.1.0",那么这个错误得到.

未处理的拒绝MongoError:无法在indexInformation(/ home/shaishab /)上的Collection.listIndexes(/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/collection.js:1750:11)连接到服务器项目/开源/ BS-Commerce/node_modules/mongodb/lib/db.js:1625:25)在Db.indexInformation(/ home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/db.js:1589:44)在Db.ensureIndex(/ home/shaishab /)的ensureIndex(/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/db.js:1082:8)项目/开源/ BS-Commerce/node_modules/mongodb/lib/db.js:1058:44)在ensureIndex(/ home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/collection. js:1820:13)在MongoStore.setAutoRemoveAsync(/ home/shaishab /)的Collection.ensureIndex(/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/collection.js:1808:44)项目/开源/ BS-Commerce/node_modules/connect-mongo/src/index.js:123:40)在MongoStore.handleNewConnectio MongoStore的nAsync(/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/connect-mongo/src/index.js:116:18)(/ home/shaishab/Project/Open-Source/BS-Commerce /node_modules/connect-mongo/src/index.js:95:26)在Object的module.exports(/home/shaishab/Project/Open-Source/BS-Commerce/config/express.js:101:10).(/home/shaishab/Project/Open-Source/BS-Commerce/server.js:31:38)在Module._compile(module.js:413:34)的Object.Module._extensions..js(module.js) :422:10)

在配置文件代码中

var session = require('express-session'),
    MongoStore = require('connect-mongo')(session),
    mongoose = require('mongoose');

var db = mongoose.connect('dbUrl');
app.use(session({
        saveUninitialized: true,
        resave: true,
        secret: config.sessionSecret,
        store: new MongoStore({
            db: db.connection.db,
            collection: config.sessionCollection
        })
}));
Run Code Online (Sandbox Code Playgroud)

谁能帮我 ?

javascript mongoose mongodb node.js express

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

我可以在MongoDB中的聚合查询中申请forEach吗?

我有一个成员集合,并按特定条件查找成员,在获得成员后,我需要为每个成员进行一些计算.计算需要查询同一个集合.

我的过程是

var eachMemberInfo = [];
var members = db.collection('member').find({ createdDate: currentDate, country: 'BD'}).toArray();
members.forEach(function(doc) {
  var result = db.collection('member').aggregate([
    { $match: { memberType: doc.memberType, country : doc.country } },
    {
      $group: {
        _id: {memberType:"$memberType",country:"$country"},
        memberCount: { $sum: {$cond:[{$gt: ["$numberOfInvitees",0]},1,0]} },
        lessCount: { $sum: {$cond:[{$and:[{$lt:["$numberOfInvitees", doc.numberOfInvitees]}, {$gt: ["$numberOfInvitees",0]}]},1,0]} },
        sameCount: { $sum: {$cond:[{$eq: ["$numberOfInvitees",doc.numberOfInvitees]},1,0]} }
      }
    }
  ]).toArray();

   eachMemberInfo.push({memberId:doc.memberId,memberCount: result[0].memberCount, lessCount: result[0].lessCount});

});
Run Code Online (Sandbox Code Playgroud)

我的问题是如何使用单个聚合查询来执行此操作?

任何人都可以帮助我:)

例如:

会员集合如:

[{
    "_id" : ObjectId("57905b2ca644ec06142a8c06"),
    "memberID" : 80,
    "memberType" : "N",
    "numberOfInvitees" : …
Run Code Online (Sandbox Code Playgroud)

mongodb node.js aggregation-framework

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

查找尚未邀请任何用户的用户

我想找到那些没有通过单个查询邀请任何用户的用户(使用聚合).

例如:我在DB中有4个用户

{
    "_id" : ObjectId("581a18d41b6c5c752f11c87a"),
    "name": "aaa",
    "invitedBy": ObjectId("5808f53d28c14ee470856d8b")
},

{
    "_id" : ObjectId("581a1a671b6c5c752f11c87b"),
    "name": "bbb",
    "invitedBy": ObjectId("581a18d41b6c5c752f11c87a")
},

{
    "_id" : ObjectId("581a1a671b6c5c752f11c87c"),
    "name": "ccc",
    "invitedBy": ObjectId("581a18d41b6c5c752f11c87a"),
},

{
    "_id" : ObjectId("581a1a671b6c5c752f11c87d"),
    "name": "ddd",
    "invitedBy": ObjectId("581a1a671b6c5c752f11c87b"),
}
Run Code Online (Sandbox Code Playgroud)

这里

1- aaa邀请了bbb和ccc用户

2- bbb邀请ddd用户

3-但是ccc和ddd用户没有邀请任何人

所以我想pic cccddd用户

如果可以使用聚合会更好,因为我需要对选定的数据执行一些操作.

mongodb node.js mongodb-query aggregation-framework

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

如何在 MongoDB 的 $lookup 中返回单个对象而不是数组?

当我们$lookupMongoDB聚合查询使用时,我们使用这种格式

{
   $lookup:
     {
       from: "users",
       localField: "userId",
       foreignField: "_id",
       as: "user"
     }
}
Run Code Online (Sandbox Code Playgroud)

其中user作为对象数组返回,然后我们需要$arrayElemAt$project舞台上使用一段时间以作为单个对象返回。喜欢

{
  $project:
   {
    user:
      { 
        $arrayElemAt: [ "$user", 0 ] 
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是我们如何可以返回user单个对象,而不是阵列$lookup阶段?

mongodb aggregation-framework

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

NodeJS GET请求不使用AngularJS

我有这个用于分享照片的网络应用程序.

现在我有这条路线应该从以下数组返回所有用户的照片.

路线:

router.get('/getphotos',function(req, res){
    var reqPhotos = [];
    console.log( "\n" + req.body.username + "\n");
    try{
      for(x =0; x < req.body.following.length;  x++){
        reqPhotos.push({username: req.body.following[x].username});
      }
    }
    catch(err){
      console.log(err);
    }

    Photo.find({username: reqPhotos}).exec(function(err, allPhotos){
        if(err){console.log(err);}
        else{
          res.json(allPhotos);
        }
   });

});
Run Code Online (Sandbox Code Playgroud)

我发现req.body.following是未定义的.这是我用angular调用它的方式:

$scope.getPhotos = function(){

    if($scope.identification){
        flng = angular.copy($scope.identification.following);
        flng.push($scope.identification.username);
        var data = {username: $scope.identification.username, token: $scope.identification.token, following: flng}
    //IDENTIFICATION HAS ALL THE INFO.
    $http.get('/users/getphotos', data).success(function(response){
        $scope.photos = response;
    });
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况以及如何解决?

谢谢!

javascript node.js express angularjs

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