3

I need read 2 collections data from MongoDB in Python, is there any way to join data in python?

2

2 Answers 2

6

Let's say that we have two collections(tables):

  1. buy_orders
  2. sell_orders

Those tables have the same field 'id_transaction' , and we want to join those tables on this field:

import pymongo

my_client = pymongo.MongoClient('mongodb://localhost:27017/')
my_db = my_client['Orders']
my_collection = my_db['buy_orders']
result = my_collection.aggregate([{
       '$lookup' : {'from': 'sell_orders','localField': 'id_transaction','foreignField': 'id_transaction','as': 'results' }
}])

To print results:

for item in result:
    print(item)

For more references: MongoDB Docs and PyMongo Docs

Sign up to request clarification or add additional context in comments.

Comments

1

Have a look here

from bson.objectid import ObjectId

#the custom_id for reference
custom_id = ObjectId()

#creating user with the role admin
db.users.insert_one({"name": "Boston", "role_id": custom_id})

#Creating role with the custom id
db.roles.insert_one({"_id": custom_id, "name": "Admin")}

#lookup usage
db.users.aggregate([
                {
                    "$lookup":
                    {
                        "from": "roles",
                        "localField": "role_id",
                        "foreignField": "_id",
                        "as": "roles"
                    }
                }
            ])

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.