آشنایی با دستور find در مانگو دی بی

آشنایی با دستور find در مانگو دی بی

در این مقاله آشنایی با دستور find در مانگو دی بی از بخش آموزش مانگو دی بی و عملیات CRUD در مانگو دی بی پس از آموزش مقاله آشنایی با دستور findOne در مانگو دی بی می خواهیم نحوه استفاده از متد ()find در مانگو دی بی را به جهت بازگردانی و نمایش اطلاعات چندین سند Documents از کالکشن Collection یاد خواهید گرفت.

متد ()find در مانگو دی‌ بی چه کاربردی دارد؟

شما با استفاده از متد ()find در مانگو دی بی می توانید اطلاعات چندین سند Documents از کالکشن Collection بازگردانی و نمایش دهید.

معرفی متد ()find در مانگو دی بی

متد ()find در مانگو دی بی به شما کمک می­ کند چندین سند Documents (یک یا چند سند) با یک ویژگی مشخص و شرایط را از کالکشن Collection برگردانده و به شما (در خروجی) نمایش دهد.

دستور زیر ساختار متد ()find می­ باشد:

db.collection.find(query, projection)

این متد خیلی شبیه متد ()findOne می­ باشد به این دلیل که این متد هم دارای دو پارامتر (آرگومان) اختیاری به عنوان ورودی متد می ­پذیرد.

1) query

پارامتر query مشخص می­ کند که در کالکشن Collection چه سند هایی را می­ خواهید واکشی و نمایش دهید که معیار انتخاب سند هم ستون های {} در اسناد می ­باشد.

اگر در متد پارامتر query را حذف کنید این متد تمام سندهایی که در کالکشن Collection مدنظر می­ باشد را بازگردانی و نمایش می­ دهد.

2) projection

پارامتر projection مشخص می­ کند در Documents سندهای انتخاب شده شما می ­خواهید چه فیلدها و ستون­ هایی را بازگردانی و نمایش دهید.

اگر در متد ()find پارامتر projection را مشخص نکنید و حذف کنید. متد ()find تمام فیلدها و ستون­های اسناد مشخص شده بازگردانی و نمایش می ­دهد.

به صورت پیش فرض متد ()find زمانی که اسناد انتخاب شده را نمایش می دهد، مقدار ستون id_ را هم نمایش می­ دهد مگر در این که شما در پارامتر projection مقدار id: false_ را مشخص کرده باشید که در خروجی اسناد مقدار فیلد id_ را نمایش نخواهد داد.

زمانی که با استفاده از ابزار mongo shell متد ()find را به صورت خودکار و بدون مشخص کردن و درج پارامترهای ورودی اجرا کنید Documents اسنادهای در Collection کالکشن خروجی گرفته و به عنوان کرسر برمی ­گرداند و در این حالت نیازی به انجام مراحل اضافه نیست.

به صورت پیش­فرض، پوسته mongo shell با اجرای متد ()find بیست سند اول Collection کالکشن را خروجی گرفته و نمایش می­ دهد و برای نمایش ادامه اسناد بایستی دستور it را در command وارد کنید.

مثال­ هایی از متد ()find در مانگو دی بی

با استفاده متد ()find تعدادی اسناد به کالکشن books درج و اضافه می­ کنیم.

db.books.insertMany([
	{ "_id" : 1, "title" : "Unlocking Android", "isbn" : "1933988673", "categories" : [ "Open Source", "Mobile" ] },
	{ "_id" : 2, "title" : "Android in Action, Second Edition", "isbn" : "1935182722", "categories" : [ "Java" ] },
	{ "_id" : 3, "title" : "Specification by Example", "isbn" : "1617290084", "categories" : [ "Software Engineering" ] },
	{ "_id" : 4, "title" : "Flex 3 in Action", "isbn" : "1933988746", "categories" : [ "Internet" ] },
	{ "_id" : 5, "title" : "Flex 4 in Action", "isbn" : "1935182420", "categories" : [ "Internet" ] },
	{ "_id" : 6, "title" : "Collective Intelligence in Action", "isbn" : "1933988312", "categories" : [ "Internet" ] },
	{ "_id" : 7, "title" : "Zend Framework in Action", "isbn" : "1933988320", "categories" : [ "Web Development" ] },
	{ "_id" : 8, "title" : "Flex on Java", "isbn" : "1933988797", "categories" : [ "Internet" ] },
	{ "_id" : 9, "title" : "Griffon in Action", "isbn" : "1935182234", "categories" : [ "Java" ] },
	{ "_id" : 10, "title" : "OSGi in Depth", "isbn" : "193518217X", "categories" : [ "Java" ] },
	{ "_id" : 11, "title" : "Flexible Rails", "isbn" : "1933988509", "categories" : [ "Web Development" ] },
	{ "_id" : 13, "title" : "Hello! Flex 4", "isbn" : "1933988762", "categories" : [ "Internet" ] },
	{ "_id" : 14, "title" : "Coffeehouse", "isbn" : "1884777384", "categories" : [ "Miscellaneous" ] },
	{ "_id" : 15, "title" : "Team Foundation Server 2008 in Action", "isbn" : "1933988592", "categories" : [ "Microsoft .NET" ] },
	{ "_id" : 16, "title" : "Brownfield Application Development in .NET", "isbn" : "1933988711", "categories" : [ "Microsoft" ] },
	{ "_id" : 17, "title" : "MongoDB in Action", "isbn" : "1935182870", "categories" : [ "Next Generation Databases" ] },
	{ "_id" : 18, "title" : "Distributed Application Development with PowerBuilder 6.0", "isbn" : "1884777686", "categories" : [ "PowerBuilder" ] },
	{ "_id" : 19, "title" : "Jaguar Development with PowerBuilder 7", "isbn" : "1884777864", "categories" : [ "PowerBuilder", "Client-Server" ] },
	{ "_id" : 20, "title" : "Taming Jaguar", "isbn" : "1884777686", "categories" : [ "PowerBuilder" ] },
	{ "_id" : 21, "title" : "3D User Interfaces with Java 3D", "isbn" : "1884777902", "categories" : [ "Java", "Computer Graphics" ] },
	{ "_id" : 22, "title" : "Hibernate in Action", "isbn" : "193239415X", "categories" : [ "Java" ] },
	{ "_id" : 23, "title" : "Hibernate in Action (Chinese Edition)", "categories" : [ "Java" ] },
	{ "_id" : 24, "title" : "Java Persistence with Hibernate", "isbn" : "1932394885", "categories" : [ "Java" ] },
	{ "_id" : 25, "title" : "JSTL in Action", "isbn" : "1930110529", "categories" : [ "Internet" ] },
	{ "_id" : 26, "title" : "iBATIS in Action", "isbn" : "1932394826", "categories" : [ "Web Development" ] },
	{ "_id" : 27, "title" : "Designing Hard Software", "isbn" : "133046192", "categories" : [ "Object-Oriented Programming", "S" ] },
	{ "_id" : 28, "title" : "Hibernate Search in Action", "isbn" : "1933988649", "categories" : [ "Java" ] },
	{ "_id" : 29, "title" : "jQuery in Action", "isbn" : "1933988355", "categories" : [ "Web Development" ] },
	{ "_id" : 30, "title" : "jQuery in Action, Second Edition", "isbn" : "1935182323", "categories" : [ "Java" ] }
]);

1) استفاده از متد ()find در مانگو دی بی برای بازگردانی تمامی اسناد از کالکشن

در مثال زیر می­ خواهیم با استفاده از متد ()find بدون مشخص کردن و درج هیچ پارامتری تمامی Documents اسنادی که در Collection کالکشن می­ باشد را واکشی و نمایش دهیم:

db.books.find()

در پوسته mongo shell اگر دستور بالا را اجرا کنید در خروجی تنها 20 سند اول در Collection کالکشن را نمایش می­ دهد و برای نمایش مابقی اسناد دستور it را وارد کنید.

2) استفاده از متد ()find در مانگو دی بی برای خروجی و نمایش سندی مشخص شده.

ما در مثال زیر با استفاده از متد ()find اطلاعات Document سندی را واکشی و نمایش می­دهیم که id = 10 می باشد:

db.books.find({_id: 10})

در دستور متد بالا پارامتر اول متد که مشخص ­کننده چه سندی یا اسنادی را می­ خواهید واکشی و نمایش دهید را مشخص می کند اما پارامتر projection مشخص نشده که نشان می­ دهد شما می ­خواهید تمامی ستون و فیلدهای Document سند را می­ خواهید در خروجی نمایش دهید.

[
  {
    _id: 10,
    title: 'OSGi in Depth',
    isbn: '193518217X',
    categories: [ 'Java' ]
  }
]

3) استفاده از متد ()find در مانگو دی بی برای نمایش سندی با مشخص کردن ستون و فیلدها.

می­ خواهید Documents اسنادی را به شما در خروجی نمایش دهد و بازگرداند که فقط سه فیلد و ستون با مقادیر درخواستی انطباق داشته باشد.

db.books.find({ categories: 'Java'}, { title: 1,isbn: 1})

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

[
  {
    _id: 2,
    title: 'Android in Action, Second Edition',
    isbn: '1935182722'
  },
  { _id: 9, title: 'Griffon in Action', isbn: '1935182234' },
  { _id: 10, title: 'OSGi in Depth', isbn: '193518217X' },
  {
    _id: 21,
    title: '3D User Interfaces with Java 3D',
    isbn: '1884777902'
  },
  { _id: 22, title: 'Hibernate in Action', isbn: '193239415X' },
  { _id: 23, title: 'Hibernate in Action (Chinese Edition)' },
  {
    _id: 24,
    title: 'Java Persistence with Hibernate',
    isbn: '1932394885'
  },
  { _id: 28, title: 'Hibernate Search in Action', isbn: '1933988649' },
  {
    _id: 30,
    title: 'jQuery in Action, Second Edition',
    isbn: '1935182323'
  }
]

در خروجی اگر بخواهید مقدار فیلد id_ را نمایش ندهید بایستی در متد در بخش پارامتر projection مقدار id_ : 0 قرار دهید:

db.books.find({ categories: 'Java'}, { title: 1,isbn: 1,_id: 0})

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

[
  { title: 'Android in Action, Second Edition', isbn: '1935182722' },
  { title: 'Griffon in Action', isbn: '1935182234' },
  { title: 'OSGi in Depth', isbn: '193518217X' },
  { title: '3D User Interfaces with Java 3D', isbn: '1884777902' },
  { title: 'Hibernate in Action', isbn: '193239415X' },
  { title: 'Hibernate in Action (Chinese Edition)' },
  { title: 'Java Persistence with Hibernate', isbn: '1932394885' },
  { title: 'Hibernate Search in Action', isbn: '1933988649' },
  { title: 'jQuery in Action, Second Edition', isbn: '1935182323' }
]

توجه داشته باشید برای ساخت و خروجی Documents اسنادی با شرایط پیچیده­ تر با استفاده از عملگرها در آموزش­های بعدی کامل توضیح خواهیم داد

خلاصه

با استفاده از متد ()find می­ توانید Documents اسنادی از Collection کالکشن خروجی گرفته و نمایش ­دهید.

برای ادامه آموزش مانگو دی‌ بی MongoDB می توانید مقاله آشنایی با دستور MongoDB Projection در مانگو دی بی را مطالعه کنید.

محسن زمانی هستم، برنامه نویس و طراح وب ، سئو هم بلدم . به هدف تفریح و سرگرمی این وب سایت رو طراحی کردم تا مطالبی که دوست دارم رو اینجا به اشتراک بزارم.

دیدگاه خود را بنویسید:

آدرس ایمیل شما نمایش داده نخواهد شد.