二级标题单对单表关联:
开始先循环插入数据到MongoDB中,然后把表1的ID放到表2中,然后就可以通过表2来查看表1了
1import random 2import pymongo 3'''DBRef关联的表''' 4from bson.dbref import DBRef 5from django.http import HttpResponse 6from bson.objectid import ObjectId 7 8 9def Circular_Insertion(request): 10 # 链接mongo 11 client = pymongo.MongoClient("127.0.0.1:27017") 12 # mongo 数据库名字 13 db = client.Chen 14 15 cursor1 = db.zhan1.find({}) 16 cursor2 = db.zhan2.find({}) 17 18 '''循环插入到数据库的表中''' 19 # 姓 20 first_name = ["赵", "钱", "孙", "李", "周", "吴", "郑", "王", "冯", "陈", "褚", "卫", "蒋", "沈", "韩", "杨", "朱", "秦", "尤", "许", 21 "何", "吕", "施", "张"] 22 # 循环插入的数量 23 for i in range(3): 24 first=random.sample(first_name,1) 25 # 名 随机一万个字符 26 last_names = chr(random.randint(0x4e00, 0x9fbf)) 27 name=first[0]+last_names 28 # 成绩 29 score1 = random.randint(0, 100) 30 score2 = random.randint(0, 100) 31 score3 = random.randint(0, 100) 32 # 插入到数据库中的zhan1表中 33 db.zhan1.insert_many([{'names': name, 'Subject': {"score1":score1,"score2":score2,"score3":score3,}}]) 34 # 遍历zhan1表 35 for cur in cursor1: 36 # 遍历zhan1表中的"_id" 37 str1 = (cur["_id"]) 38 # 打印zhan1表 39 print(cur) 40 # 循环插入的数量 41 for i in range(3): 42 # 电话 43 phone=('13' + str(random.randrange(4, 10)) + ''.join(str(random.choice(range(10))) for _ in range(8))) 44 # 班级 45 grade = random.randint(1, 3) 46 # 年龄 47 age = random.randint(1, 100) 48 # 插入到数据库中的zhan2的表 49 db.zhan2.insert_many([{'ref':DBRef(collection="zhan1",id=str1),'grades': grade,'ages': age,'phones': phone}]) 50 break 51 52 print('-'*200) 53 # 通过zhan2打印zhan1的信息 54 for j in cursor2: 55 show = db[j['ref'].collection].find({"_id": ObjectId(j['ref'].id)}) 56 for pt in show: 57 print(pt) 58 break 59 print(j) 60 return HttpResponse("数据插入成功!")
打印的数据:

在mongo的cmd中打印的数据:

