منوهای نصب در پنل مدیریت

  • ورود
  • سبد خرید شما خالی است.

آموزشMongo DB + بخش اول

آموزشMongo DB + بخش اول

MongoDB یک دیتابیس nosql و مستند محور است که به شما مزایای مختلفی برای ذخیره سازی اطلاعات میدهد. MongoDB داده ها را در اسناد مشابه JSON ذخیره می کند , که باعث می شود بانک اطلاعاتی بسیار انعطاف پذیر و مقیاس پذیر باشد. در این دوره قصد داریم کار با این دیتابیس عالی را به شما آموزش دهیم تا شما بتوانید در پروژه های خودتان از این دیتابیس فوق العاده استفاده کنید . 

اگر مقالات مربوط به مونگو دیبی چیست؟! و آموزش نصب مونگو دیبی را ندیدید پیشنهاد می کنیم قبل از دیدن این مقاله حتما یک سر به این مقالات بزنید.

import

یک صفحه پایتون در یکی از idle های دلخواه (pycharrm,Jupiter,vsc,et) ایجاد کنید با یک اسم دلخواه و سپس pymongo را import (وارد کردن) کنید.

import pymongo

بعد از اضافه کردن آن حالا نوبت ساخت یک دیتابیس است که ما آن را بطورمثال mydatabase نام گذاری میکنیم.

import pymongo

myclient = pymongo.MongoClient(‘mongodb://localhost:27017/’)

mydb = myclient[‘mydatabase’]

در خط  دوم ما آدرس هاست خود را دریافت میکنیم تا درآن یک دیتابیس بسازیم.

دیتابیس

اگر میخواهید لیست دیتابیس هایی را که ایجاد کردید ببینید از کد زیراستفاده کنید.

print (myclient.list_database_name())

یا میتوانید چک کنید که دیتابیس مورد نظر وجود دارد یا نه، مثلا در خط چهارم بررسی میکنیم mydatabase وجود دارد یا خیر واگر وجود داشت این پیام را دهد  “The database exists”

import pymongo

myclient = pymongo.MongoClient(‘mongodb://localhost:27017/’)

dblist = myclient.list_database_names()

if “mydatabase” in dblist:

 print(“The database exists.”)

ایجاد collection

برای ایجاد یک collection (مجموعه) در MongoDB ، از شیء پایگاه داده استفاده کنید و نام مجموعه ای را که می خواهید ایجاد کنید مشخص کنید,اگر وجود نداشته باشد MongoDB مجموعه را ایجاد می کند.

در این خط ما یک collection بنام “customers” ایجاد کردیم.

myclient = pymongo.MongoClient(‘mongodb://localhost:27017/’)

mydb = myclient[‘mydatabase’]

mycol = mydb[“customers”]

یک نکته: تا زمانی که یک collection محتوا نداشته باشد ایجاد نمیشود

MongoDB صبر می کند تا قبل از ایجاد یک مجموعه ، یک document را وارد کنید.

به یاد داشته باشید: در MongoDB ، یک collection تا زمانی که به محتوا نرسد ، ایجاد نمی شود ، بنابراین اگر این اولین بار است که شما یک collection را ایجاد می کنید ، قبل از بررسی اینکه آیا این collection وجود دارد ، باید ایجاد document را کامل کنید!

با لیست کردن collection ها میتوانید بررسی کنید که آیا collection وجود دارد یا نه. این کد یک لیست از همه collection های دیتابیس را برمیگرداند.

import pymongo

myclient = pymongo.MongoClient(‘mongodb://localhost:27017/’)

mydb = myclient[‘mydatabase’]

mycol = mydb[“customers”]

print(mydb.list_collection_names())

insert (اضافه کردن) به collection (مجموعه)

برای وارد کردن یک رکورد یا document  همانطور که در MongoDB نامیده می شود ، در یک مجموعه ، از روش insert_one() استفاده می کنیم.

اولین پارامتر متد  insert_one() یک دیکشنری است که حاوی نام (ها) و مقدار (های) هر فیلد را درdocument که می خواهید درج کنید.

در این کد ما یک رکورد را داخل collection (مجموعه) “costumers” میریزیم.

import pymongo

myclient = pymongo.MongoClient(‘mongodb://localhost:27017/’)

mydb = myclient[‘mydatabase’]

mycol = mydb[“customers”]

mydict = { “name”: “John”, “address”: “Highway 37” }

x = mycol.insert_one(mydict)

print(x)

برگرداندن یک _id field متد insert_one یک شیء InsertOneResult را که دارای یک ویژگی inserted_id است به id سند درج شده برمی گرداند.

import pymongo

myclient = pymongo.MongoClient(‘mongodb://localhost:27017/’)

mydb = myclient[‘mydatabase’]

mycol = mydb[“customers”]

mydict = { “name”: “Peter”, “address”: “Lowstreet 27” }

x = mycol.insert_one(mydict)

print(x.inserted_id)

اگر _id را مشخص نکنید ، MongoDB یک id  برای شما اضافه می کند و یک id منحصر به فرد را برای هر  documentsختصاص می دهد.

در مثال بالا هیچ _id مشخص نشده است ، بنابراین MongoDB یک _idمنحصر به فرد برای رکورد (documents) اختصاص داده است.

درج  document های چندگانه

برای قرار دادن چندین document  در یک collection در MongoDB ، از روش insert_many ()  استفاده می کنیم.

اولین پارامتر از روش insert_many () لیستی است که شامل  dictionaryها با داده هایی است که می خواهید وارد کنید:

import pymongo

myclient = pymongo.MongoClient(“mongodb://localhost:27017/”)

mydb = myclient[“mydatabase”]

mycol = mydb[“customers”]

mylist = [

{ “name”: “Amy”, “address”: “Apple st 652”},

  { “name”: “Hannah”, “address”: “Mountain 21”},

  { “name”: “Michael”, “address”: “Valley 345”},

  { “name”: “Sandy”, “address”: “Ocean blvd 2”},

  { “name”: “Betty”, “address”: “Green Grass 1”},

  { “name”: “Richard”, “address”: “Sky st 331”},

  { “name”: “Susan”, “address”: “One way 98”},

  { “name”: “Vicky”, “address”: “Yellow Garden 2”},

  { “name”: “Ben”, “address”: “Park Lane 38”},

  { “name”: “William”, “address”: “Central st 954”},

  { “name”: “Chuck”, “address”: “Main Road 989”},

  { “name”: “Viola”, “address”: “Sideway 1633”}

]

x = mycol.insert_many(mylist)

#print list of the _id values of the inserted documents:

print(x.inserted_ids)

روش insert_many() یک شیء InsertManyResult را که دارای یک خاصیت است را وارد کرده که   documentهای درج شده را در بر می گیرد.

درج document چندگانه ، با id های خاص

اگر نمی خواهید MongoDB برای شما id های منحصر به فرد اختصاص دهد ، می توانید هنگام وارد کردن سند(ها) زمینه id را مشخص کنید.

به یاد داشته باشید که مقادیر باید منحصر به فرد باشند. دو document نمی توانند یک id داشته باشند.

myclient = pymongo.MongoClient(“mongodb://localhost:27017/”)

mydb = myclient[“mydatabase”]

mycol = mydb[“customers”]

mylist = [

  { “_id”: 1, “name”: “John”, “address”: “Highway 37”},

  { “_id”: 2, “name”: “Peter”, “address”: “Lowstreet 27”},

  { “_id”: 3, “name”: “Amy”, “address”: “Apple st 652”},

  { “_id”: 4, “name”: “Hannah”, “address”: “Mountain 21”},

  { “_id”: 5, “name”: “Michael”, “address”: “Valley 345”},

  { “_id”: 6, “name”: “Sandy”, “address”: “Ocean blvd 2”},

  { “_id”: 7, “name”: “Betty”, “address”: “Green Grass 1”},

  { “_id”: 8, “name”: “Richard”, “address”: “Sky st 331”},

  { “_id”: 9, “name”: “Susan”, “address”: “One way 98”},

  { “_id”: 10, “name”: “Vicky”, “address”: “Yellow Garden 2”},

  { “_id”: 11, “name”: “Ben”, “address”: “Park Lane 38”},

  { “_id”: 12, “name”: “William”, “address”: “Central st 954”},

  { “_id”: 13, “name”: “Chuck”, “address”: “Main Road 989”},

  { “_id”: 14, “name”: “Viola”, “address”: “Sideway 1633”}

]

x = mycol.insert_many(mylist) Print (x.inserted_ids)

در MongoDB برای یافتن داده ها در یک مجموعه از روش find و findOne استفاده می کنیم.

درست مثل عبارت SELECT برای یافتن داده ها در جدول در پایگاه داده MySQL استفاده می شود.

Find One

برای انتخاب داده ها از یک مجموعه در MongoDB ، می توانیم از روش findone () استفاده کنیم.

روش findone () اولین مورد را در انتخاب برمی گرداند.

import pymongo

myclient = pymongo.MongoClient(“mongodb://localhost:27017/”)

mydb = myclient[“mydatabase”]

mycol = mydb[“customers”]

x = mycol.find_one()

print(x)

Find all

برای انتخاب داده ها از جدول در MongoDB ، می توانیم از روش find () نیز استفاده کنیم.

روش find () تمام وقایع موجود در انتخاب را برمی گرداند.

اولین پارامتر روش find () یک query است. در این مثال ما از یک موضوع پرس و جو خالی استفاده می کنیم ، که تمام اسناد موجود در مجموعه را انتخاب می کند.

هیچ پارامتری در روش find () نتیجه مشابهی را برای SELECT * در MySQL به شما نمی دهد.

با این کد میتوانید همه اسناد را در مجموعه “customers” برگردانید و هر سند را چاپ کنید:

import pymongo

myclient = pymongo.MongoClient(“mongodb://localhost:27017/”)

mydb = myclient[“mydatabase”]

mycol = mydb[“customers”]

for x in mycol.find():

  print(x)

فقط بعضی از قسمت ها را برگردانید پارامتر دوم روش find () شیئی است که توصیف می کند کدام قسمت ها را در نتیجه درج کنید.

این پارامتر اختیاری است و در صورت حذف ، تمام قسمت ها در نتیجه گنجانده می شوند. در این مثال فقط نام ها و آدرس ها را برگردانید ، نه id ها را:

import pymongo

myclient = pymongo.MongoClient(“mongodb://localhost:27017/”)

mydb = myclient[“mydatabase”]

mycol = mydb[“customers”]

for x in mycol.find({},{ “_id”: 0, “name”: 1, “address”: 1 }):

print(x)

شما مجاز نیستید که مقادیر 0 و 1 را در یک جسم مشخص کنید (به جز اینکه یکی از زمینه ها زمینه _id باشد). اگر فیلد را با مقدار 0 مشخص کنید ، تمام فیلدهای دیگر مقدار 1 را دریافت می کنند و بالعکس:

این مثال “address” را از نتیجه حذف می کند:

import pymongo

myclient = pymongo.MongoClient(“mongodb://localhost:27017/”)

mydb = myclient[“mydatabase”]

mycol = mydb[“customers”]

for x in mycol.find({},{ “address”: 0 }):

  print(x)

اگر مقادیر 0 و 1 را در یک جسم مشخص کنید خطایی رخ می دهد (به جز اینکه یکی از زمینه ها زمینه _id باشد):

import pymongo

myclient = pymongo.MongoClient(“mongodb://localhost:27017/”)

mydb = myclient[“mydatabase”]

mycol = mydb[“customers”]

for x in mycol.find({},{ “name”: 1, “address”: 0 })

 print(x)

در بخش دوم آموزش را تکمیل خواهیم کرد فعلا با همین دستورات شروع به تمرین کنید و آماده برای بخش دوم آموزش شوید.

منبع: w3schools.com

۰ پاسخ به "آموزشMongo DB + بخش اول"

ارسال یک پیام

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

X