【问题标题】:Get specific data in mongodb nodejs在 mongodb nodejs 中获取特定数据
【发布时间】:2015-06-07 02:06:43
【问题描述】:

我正在使用 mongoDB 处理 nodejs 服务器。现在我有一个示例数据:

 {
        "_id": ObjectId("555f1c0c7f4b820758b439b0"),
        "user": "Guest1",
        "friend": [{
            "myfriend": "Guest2",
            "info": []
        }, {
            "myfriend": "Guest3",
            "info": []
        }]
    } 

现在我想将所有“我的朋友”放入数组中,如下所示:

var listfriend = ["Guest2","Guest3"];

那我该怎么做呢?

感谢阅读:)

【问题讨论】:

    标签: arrays node.js mongodb


    【解决方案1】:

    尝试使用 map() 方法如下:

    var listfriend = db.names.findOne(
        {"user" : "Guest1"}, 
        {"_id": 0, "friend": 1}
    ).friend.map(function(obj){ 
        return obj.myfriend; 
    });
    
    console.log(listfriend); // ["Guest2","Guest3"]
    

    【讨论】:

      【解决方案2】:

      您想使用聚合框架吗?

      var aggregateFriends = function( db, callback) 
      {
        db.collection('test').aggregate( 
          [ 
            { $unwind: "$friend" },
            { $group: { _id: "$user", friends: {$push: "$friend.myfriend" } } }
          ]
        ).toArray( function( err, result ) { 
            console.log(result); 
            db.close(); 
        } ); 
      };
      
      
      var MongoClient = require('mongodb').MongoClient;
      var assert = require('assert')
      var ObjectId = require('mongodb').ObjectID;
      var url = 'mongodb://localhost:27017/test';
      MongoClient.connect(url, function(err, db) {
          assert.equal(null, err);
          aggregateFriends( db, function() { db.close(); });
      } );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-14
        • 1970-01-01
        • 1970-01-01
        • 2021-10-15
        • 2016-02-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多