Pymongo - 通过查询值列表查询 mongodb 的第一个数组元素
Pymongo - Query mongdb for first array elemnet by query of list of values
给定的集合:
{
"_id" : "1.1000038",
"recomendation" : [
"1.6739718"
]
}
/* 2 */
{
"_id" : "1.1000069",
"recomendation" : [
"1.9185509",
"1.9051998",
"1.9034279",
"1.8288046",
"1.8152670",
"1.858775",
"1.6224229",
"1.4591674",
"1.3862464",
"1.3427739",
"1.3080062",
"1.3003608",
"1.1694619",
"1.1634683",
"1.1590664",
"1.1524146",
"1.754599",
"1.700837",
"1.763617"
]
}
我需要在 MongoDB 中查询值列表并获取值列表的第一个元素
这里是 mongo 语法
的查询
db.getCollection('similar_articles').find({"_id":{$in:["1.1000069","1.1000038"]}})
我不想在 python 端过滤它,因为它可能太大了。
我没有找到关于它的任何文档
期望输出:
Pandas 数据帧
_id recom
1.1000038 1.6739718
1.1000069 1.9185509
我不太了解 pymongo
,但您需要这个查询:
首先 $match
由 _id
s 进入数组(这就像你找到的一样)。
然后使用$project
创建字段recom
(可以使用“推荐”覆盖现有字段)并将值设置为数组中的第一个。
db.collection.aggregate([
{
"$match": { "_id": { "$in": [ "1.1000069", "1.1000038" ] } }
},
{
"$project": { "recom": { "$arrayElemAt": [ "$recomendation", 0 ] } }
}
])
示例here
查看 doumentation 看来您只需要复制并粘贴此查询即可。
给定的集合:
{
"_id" : "1.1000038",
"recomendation" : [
"1.6739718"
]
}
/* 2 */
{
"_id" : "1.1000069",
"recomendation" : [
"1.9185509",
"1.9051998",
"1.9034279",
"1.8288046",
"1.8152670",
"1.858775",
"1.6224229",
"1.4591674",
"1.3862464",
"1.3427739",
"1.3080062",
"1.3003608",
"1.1694619",
"1.1634683",
"1.1590664",
"1.1524146",
"1.754599",
"1.700837",
"1.763617"
]
}
我需要在 MongoDB 中查询值列表并获取值列表的第一个元素
这里是 mongo 语法
的查询db.getCollection('similar_articles').find({"_id":{$in:["1.1000069","1.1000038"]}})
我不想在 python 端过滤它,因为它可能太大了。
我没有找到关于它的任何文档
期望输出: Pandas 数据帧
_id recom
1.1000038 1.6739718
1.1000069 1.9185509
我不太了解 pymongo
,但您需要这个查询:
首先 $match
由 _id
s 进入数组(这就像你找到的一样)。
然后使用$project
创建字段recom
(可以使用“推荐”覆盖现有字段)并将值设置为数组中的第一个。
db.collection.aggregate([
{
"$match": { "_id": { "$in": [ "1.1000069", "1.1000038" ] } }
},
{
"$project": { "recom": { "$arrayElemAt": [ "$recomendation", 0 ] } }
}
])
示例here
查看 doumentation 看来您只需要复制并粘贴此查询即可。