在mongodb nodejs中获取特定的数据

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

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

现在我想把所有的“我的朋友”放入数组中,像这样:

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

那我该怎么做呢?

感谢阅读:)

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

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

你想使用聚合框架吗?

 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(); }); } );