【发布时间】:2020-09-15 15:46:20
【问题描述】:
我有一个集合测试,它具有以下值,我必须根据“值”字段从中获取文档,我可以从下面的给定查询中轻松获取。
db.getCollection('test').find({"value" : 100})
但真正的问题是我有“值”字段列表,例如 [100,104,200152,.......] 这个列表可能真的很长,我希望我的结果采用以下给定格式,以减少 mongo 查询的数量,因为这需要太多时间,如果包含“值”的列表太大,那么我必须执行多个 mongo 查询来获取所有的记录。
{100:[
/* 1 */
{
"_id" : "C1",
"value" : 100,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 2 */
{
"_id" : "C2",
"value" : 100,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 3 */
{
"_id" : "C3",
"value" : 100,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 4 */
{
"_id" : "C4",
"value" : 100,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 5 */
{
"_id" : "CO",
"value" : 100,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 6 */
{
"_id" : "DD",
"value" : 100,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 7 */
{
"_id" : "EX",
"value" : 100,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}],
104:
[{
"_id" : "AU",
"value" : 104,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}],
200152:
[
{
"_id" : "GenFile",
"value" : 200152,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
]
数据库
/* 1 */
{
"_id" : "AU",
"value" : 104,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 2 */
{
"_id" : "C1",
"value" : 100,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 3 */
{
"_id" : "C2",
"value" : 100,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 4 */
{
"_id" : "C3",
"value" : 100,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 5 */
{
"_id" : "C4",
"value" : 100,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 6 */
{
"_id" : "CO",
"value" : 100,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 7 */
{
"_id" : "DD",
"value" : 100,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 8 */
{
"_id" : "EX",
"value" : 100,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 9 */
{
"_id" : "GS_SEG",
"value" : 124755350,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
/* 10 */
{
"_id" : "GenFile",
"value" : 200152,
"lastUpdatedTime" : ISODate("2019-11-04T00:00:00.000Z"),
"timetaken" : 3.0
}
【问题讨论】:
标签: python mongodb mongodb-query pymongo