这就是一个文档的样子,我不能用 "id_"来找到正确的文档,我必须用 "date"、"caseid "和 "sector "的组合。
{
"_id" : ObjectId("5ebe67974bfaadfe0ec3ed10"),
"date" : 20180101,
"likelybuy" : 1000614,
"bixdemo_alter" : 2,
"bixdemo_bundesland" : 10,
"caseid" : 653433802,
"bixdemo_haushalts_nettoeinkommen" : 2.0,
"bixdemo_geschlecht" : 1,
"sector" : 1026,
}
coll.update_one({'_id': id},
{
'$set': {
'sector': 1029,
}
})
我不能用 "id_"来找到正确的文件,我必须用 "日期","caseid "和 "部门 "的组合。
有什么方法可以做到这一点吗?
当然,你不一定要用一个 _id
作为过滤器,你可以使用任何字段。只要在过滤器中使用这些字段即可,如
coll.update_one({'date': 20180101, 'caseid': 653433802,'sector': 1026},
{
'$set': {
'sector': 1029,
}
})
你可以直接匹配 id
而不是匹配所有其他字段的值。您可以做以下工作。
导入 ObjectId
:
from bson.objectid import ObjectId`
做这样的查询。
coll.update_one({'_id': ObjectId(id)},
{
'$set': {
'sector': 1029,
}
})
我希望这对你有用
首先,我认为你试图找到你的id。
coll.update_one({_id:'12314'},{})
但问题是你传递了字符串来搜索对象id,所以,mongodb找不到它。如果你试试下面这个。
coll.update_one({_id:mongoose.Types.ObjectId('12314')},{})
我想这样就可以了 而且你可以在mongodb中使用'$elemMatch'来进行组合搜索。