MongoDB - 查询大型集合
Posted
技术标签:
【中文标题】MongoDB - 查询大型集合【英文标题】:MongDB - queries a large collection 【发布时间】:2016-07-22 21:22:16 【问题描述】:我的 MongoDB 集合中有 40 个 MM 文档(例如 db.large_collection)
我想获取所有不同的 User_ID。
我在字段 user_id 上创建了一个索引,但是当我尝试执行时,它返回一个错误。
> db.large_collection.count()
39894523
> db.clean_tweets4.getIndexes()
[
"v" : 1,
"key" :
"_id" : 1
,
"name" : "_id_",
"ns" : "sampled_tourist.clean_tweets4"
,
"v" : 1,
"key" :
"user_id" : 1
,
"name" : "user_id_1",
"ns" : "sampled_tourist.clean_tweets4"
,
"v" : 1,
"key" :
"coordinates" : 1
,
"name" : "coordinates_1",
"ns" : "sampled_tourist.clean_tweets4"
,
"v" : 1,
"key" :
"timestamp_ms" : 1
,
"name" : "timestamp_ms_1",
"ns" : "sampled_tourist.clean_tweets4"
]
但是当我运行时
db.clean_tweets4.find(,user_id:1)
"_id" : ObjectId("5790f9a178776f4b56ede2be"), "user_id" : NumberLong("2246342226")
"_id" : ObjectId("5790f9a178776f4b56ede2bf"), "user_id" : NumberLong("2289817236")
"_id" : ObjectId("5790f9a178776f4b56ede2c0"), "user_id" : 1904381486
"_id" : ObjectId("5790f9a178776f4b56ede2c1"), "user_id" : NumberLong("3044032705")
"_id" : ObjectId("5790f9a178776f4b56ede2c2"), "user_id" : NumberLong("3407958364")
"_id" : ObjectId("5790f9d278776f4b56ee4af2"), "user_id" : 1566025975
"_id" : ObjectId("5790f7ab78776f4b56ea55c6"), "user_id" : 15857879
"_id" : ObjectId("5790f9a178776f4b56ede28f"), "user_id" : NumberLong("3394102511")
"_id" : ObjectId("5790f9a178776f4b56ede293"), "user_id" : 1376377652
"_id" : ObjectId("5790f9a178776f4b56ede294"), "user_id" : 352385989
"_id" : ObjectId("5790f9a178776f4b56ede295"), "user_id" : NumberLong("2383622643")
"_id" : ObjectId("5790f9a178776f4b56ede29c"), "user_id" : 152362163
"_id" : ObjectId("5790f9a178776f4b56ede2a0"), "user_id" : 1446113954
"_id" : ObjectId("5790f9a178776f4b56ede2a1"), "user_id" : 1893437088
"_id" : ObjectId("5790f9a178776f4b56ede2a2"), "user_id" : 67121578
"_id" : ObjectId("5790f9a178776f4b56ede2a3"), "user_id" : 1714137770
"_id" : ObjectId("5790f9a178776f4b56ede2a4"), "user_id" : 52806609
谢谢!
【问题讨论】:
你查看distinct
了吗? docs.mongodb.com/manual/reference/method/db.collection.distinct
是的。但是,这一直让我崩溃,并说它无法处理内存。还有其他想法吗?
返回什么错误?
【参考方案1】:
查找();意味着它返回一切。 这就是你想要的。
db.collection.find(user_id:1);
【讨论】:
我想我对你想要做什么感到困惑。有没有地方可以查看您的整个收藏。以上是关于MongoDB - 查询大型集合的主要内容,如果未能解决你的问题,请参考以下文章
通过 spring-data 迭代 MongoDB 中的大型集合