繁体   English   中英

mongodb命令很慢

[英]mongodb command very slow

我有 3 个这样的文件:

{
_id: ObjectId("..."),
_details: {
    _session: ObjectId("example_1"),
},
{
_id: ObjectId("..."),
_details: {
    _session: ObjectId("example_1"),
},
{
_id: ObjectId("..."),
_details: {
    _session: ObjectId("example_2"),
}

我正在尝试检索和分组_details._session的 ID。 上述示例数据集的预期输出为:

['example_1', 'example_2']

我尝试了以下 Python 脚本:

cursor = mycol.find({}, {"_details.session": 1})
sessions = []
for doc in cursor:
    if doc['_details']['_session'] not in sessions:
        sessions.append(doc['_details']['_session'])

问题是 500 个文档大约需要 1 分钟。

有什么方法可以加快该命令的速度吗? 我需要它以最快的方式运行。

操场

db.collection.aggregate([
  {
    "$group": {
      "_id": null,
      "uniqueSessions": {
        "$addToSet": "$_details._session"
      }
    }
  }
])

您不需要遍历每个文档。 您可以使用 mongo 聚合框架轻松高效地完成许多事情。

您可以添加一个$project阶段以避免在输出中出现_id:null如果它真的很麻烦。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM