如何将行拆分为不同的集合,每个集合都以第一个集合的\u id作为引用

2024-09-19 20:51:16 发布

您现在位置:Python中文网/ 问答频道 /正文

给定以下具有四个属性的行:

{ att1 : "att1", att2 : "att2", att3 : "att3", att4 : "att4"}

我想在MongoDB中将这一行存储到两个集合中。的\u id collectionA将用作关系数据库中的外键。你知道吗

如何用pymongo在MongoDB中高效地实现这一点?你知道吗

collectionA
{
    "att1"  : "att1"
    "att2"  : "att2"
    "_id"   : ObjectID("4e95e41a1d41c823d5000001")
}
collectionB
{
    "att3"   : "att3"
    "att4"   : "att4"
    "ref_id" : ObjectID("4e95e41a1d41c823d5000001")
    "_id"    : ObjectId("4e95f81587ebf9f190c3cc4e")
}

我在这里看到一个solution发布的JavaScript。但是,每次, 我们必须先将文档插入collectionA,然后查询 刚刚插入的文档用于进一步操作。有更好的办法吗?你知道吗


Tags: 文档id属性mongodb中将外键关系数据库objectid
1条回答
网友
1楼 · 发布于 2024-09-19 20:51:16

驱动程序实际上负责生成ObjectId值,因此非常简单(下面我假设您的数据库存储在python变量“db”中):

import bson

myrow = { att1 : "att1", att2 : "att2", att3 : "att3", att4 : "att4"}

ref_id = bson.ObjectId()
db.collectionA.insert({att1:myrow['att1'], att2:myrow['att2'], _id:ref_id})
db.collectionB.insert({att3:myrow['att3'], att4:myrow['att4'], ref_id:ref_id})

相关问题 更多 >