آموزش مقدماتی پایگاه داده سندگرای مانگو

مانگو  محمدامین ساجدی
Facebooktwittergoogle_pluspinterestlinkedinmail
Print Friendly, PDF & Email

MinKey و MaxKey:

مجموعه عملیات زیر هردوی مقایسه نوع و مقادیر MinKey و MaxKey  را برای شما به نمایش می گذارد:

> db.test.insert( [ { x : 3 },

                  { x : 2.9 },

                  { x : new Date() },

                  { x : true },

                  { x : MaxKey },

                  { x : MinKey } ] );

> db.test.find().sort( { x : 1 } );

{ “_id” : ObjectId(“4b04094b7c65b846e2090112”), “x” : { $minKey : 1 } }

{ “_id” : ObjectId(“4b03155dce8de6586fb002c7”), “x” : 2.9 }

{ “_id” : ObjectId(“4b03154cce8de6586fb002c6”), “x” : 3 }

{ “_id” : ObjectId(“4b031566ce8de6586fb002c9”), “x” : true }

{ “_id” : ObjectId(“4b031563ce8de6586fb002c8”), “x” : “Tue Jul 25 2012 18:42:03 GMT-0500 (EST)” }

{ “_id” : ObjectId(“4b0409487c65b846e2090111”), “x” : { $maxKey : 1 } }

Minimum Shard Key:

برای انجام پرس و جویی جهت دریافت حداقل مقدار shard از یک کلاستر shard شده وقتیکه به mongos متصل هستید از عملیات زیر استفاده کنید:

use config

db.chunks.find( { “min.shardKey”: { $type: -1 } } )

 

عملیات های ارزیابی:

عملگر  $mod:

داکیومنت هایی را انتخاب کنید که در آن ها مقدار یک فیلد تقسیم بر یک مقدار تعیین شده باقیمانده مشخصی را بدهد. برای استفاده از عملگر $mod از نخو زیر استفاده می شود:

{ field: { $mod: [ divisor, remainder ] } }

این عملگر هنگامیکه تعداد عناصر درون آرایه آن ها نادرست باشد خطا می دهند. در نسخه های قبلی مانگو درصورتیکه در ارایه این عملگر تنها یک پارامتر ارسال شود، مقدار باقیمانده 0 درنظر گرفته می شود. درصورتی هم که بیشتر از دو عنصر درون آن قرار گیرد تنها دو عنصر اول درنظر گرفته می شوند. نسخه های قبلی هنگامیکه آرایه خالی فرستاده می شود نیز خطا می دهد.

مثال ها:

استفاده از عملگر $mod برای انتخاب داکیومنت ها:

مجموعه inventory را با داکیومنت های زیر در نظر بگیرید:

{ “_id” : 1, “item” : “abc123”, “qty” : 0 }

{ “_id” : 2, “item” : “xyz123”, “qty” : 5 }

{ “_id” : 3, “item” : “ijk123”, “qty” : 12 }

پرس و جوی زیر ان داکیومنت هایی را انتخاب می کند که حاصل  qty آن ها در مد 4 برابر با 0  باشد.

db.inventory.find( { qty: { $mod: [ 4, 0 ] } } )

این پرس و جو داکیومنت های زیر را برمیگرداند:

{ “_id” : 1, “item” : “abc123”, “qty” : 0 }

{ “_id” : 3, “item” : “ijk123”, “qty” : 12 }

خطای تعداد عناصر ناکافی:

عملگر $mod هنگامیکه کمتر از دو عنصر درون آرایه آن وارد شود خطا می دهد.

آرایه با یک عنصر:

در عملیات زیر بطور اشتباه تنها یک عنصر بعنوان عناصر آرایه عملگر $mod ارسال شده است.

db.inventory.find( { qty: { $mod: [ 4 ] } } )

عبارت بالا منجر به تولید خطای زیر می شود:

error: {

     “$err” : “bad query: BadValue malformed mod, not enough elements”,

     “code” : 16810

}

بدون دیدگاه

ارسال دیدگاه

اجرا شده توسط: همیار وردپرس