Mongodb-从查找中获取对象而不是数组

los*_*ion 5 mongoose mongodb

db.users.find();
Run Code Online (Sandbox Code Playgroud)

会给我返回一系列用户:

[{
_id: 123
name: bob
},{
_id: 456
name: tom
}]
Run Code Online (Sandbox Code Playgroud)

我需要通过id将用户映射到另一个集合,所以我想从mongo返回一个对象,其中的键是_id,值是用户doc。

users = {
123: {_id: 123, name: bob},
456: {_id, 456, name:tom}
}
Run Code Online (Sandbox Code Playgroud)

然后,我可以直接从该对象访问用户,而不必迭代数组来查找特定用户。

id = 123;
user = users[id];
Run Code Online (Sandbox Code Playgroud)

Leo*_*tny 4

你无法从 mongodb 获取像这样的对象,但自己构建它非常容易:

db.users.find(function (err, docs) {
  var users = {};
  docs.forEach(function (doc) {
    users[doc._id] = doc;
  });
  do_whatever_you_want_next(users);
});
Run Code Online (Sandbox Code Playgroud)

  • 3年后,但我看起来一模一样,你知道 mongo / mongoose 是否默认支持这个? (2认同)