Angular in Tamil part -5
Muthu karthikeyan, Madurai
மாங்கோ டிபி என்பது கிராஸ் பிளாட்ஃபார்ம் , டாக்குமெண்ட்
ஒரியண்டடு டேட்டா பேஸ் ஆகும். இது No sql டேட்டா பேஸ் வகையை சார்ந்தது. இது json டைப்
டாக்குமெண்ட்களை பயன்படுத்துகின்றது. இதில் ஸ்கீமா ஆப்சனல் ஆகும்.
இது sql அடிப்படையிலான டேட்டா பேஸ் அல்ல. இதில்
டேபிள்களை கலக்சன் என்றும் ரிக்கார்டுகளை டாக்குமெண்ட்கள் என்றும் அறிகின்றோம்.
12 முக்கிய கட்டளைகள்.
1. என்னென்ன
டேட்டா பேஸ்கள் என்பதை லிஸ்ட் செய்ய
show dbs
2.
புதிதாக டேட்டா பேஸ்
உருவாக்க
use [name of database]
Example
use users
3.
ஆக்டிவ் ஆக உள்ள டேட்டா
பேஸ் அல்லது கலக்சன்களை அறிய
Db
4.
புதிதாய் கலக்சன்களை
உருவாக்க
db.createCollection("[name
of collection]")
Example
db.createCollection("customer")
5.
கலக்சன்களை காண்பிக்க
show collections
6. ஒரு கலக்சனில் டாக்குமெண்ட்களை
இன்செர்ட் செய்ய
db.[name of
collection].insert({})
Example
db.customer.insert({"name": "Theodore",
"gender": "M"})
அர்ரேயாக இன்செர்ட் செய்ய
db.customer.insert([
{"name": "Theodore", "gender": "M"},
{"name": "Jane Doe", "gender": "F"},
{"name", "John Doe", "gender": "M"}
])
7. ஒரு கலக்சனில் உள்ள எல்லா டாக்குமெண்ட்களையும்
காண்பிக்க
·
db.[collection Name].find()
or
db.[collection name].find().pretty()
8. ஒரு கலக்சனில் உள்ள எல்லா டாக்குமெண்ட்களிலும்
குறிப்பிட்ட ஃபீல்டை மட்டும் காண்பிக்க
db.customer.find({},{id:1}).pretty()
மேலே உள்ளது ID ஃபீல்டை மட்டும் காண்பிக்கும் .
9.
$set மூலம் ஒரு டாக்குமெண்டை
அப்டேட் செய்ய
db.[name of collection].update({},{$set:
{}})
Example
db.customer.update(
{"name":"Theodore"},
{$set:
{"name": "Theodore Kelechukwu Onyejiaku"}
}
)
10. $rename மூலம் ஒரு ஃபீல்டை பெயர் மாற்ற
db.customer.update(
{"name": "Theodore Kelechukwu Onyejiaku"},
{$rename:
{"gender":"sex"}
}
)
11. $unset மூலம் ஒரு ஃபீல்டை அகற்ற
db.customer.update(
{"name": "Theodore Kelechukwu Onyejiaku"},
{$unset:
{"sex": 1}
}
)
12.ஒரு கலக்சனில் இருந்து டாக்குமெண்டை
அகற்ற
or
.
Example
db.customer.remove({"name":"Jane Doe"})
நன்றி,
முத்து கார்த்திகேயன் , மதுரை.
சைல்ட் கிளாசில் உள்ள ஃபங்க்சன்கள் அதே ஆர்க்க்யூமெண்ட்
எண்ணிக்கையில் , அதே பெயருடன் பேரண்ட் கிளாசில் உள்ள ஃபங்க்சன்களை ஓவர் ரைட் செய்கின்றன.
பின் வரும் சான்று நிரலில் getTitle,
getPrice ஆகிய ஃபங்க்சன்கள் ஓவர் ரைட் செய்யப்பட்டுள்ளன.
function
getPrice()
{
echo $this->price . "<br/>";
return
$this->price;
}
function
getTitle(){
echo $this->title . "<br/>";
return
$this->title;
}
ஆக்சஸ் ஸ்பெசிஃபையர் குறிப்பிடா விட்டால் எல்லா
ஃபங்கசன்கள் மற்றும் வேரியபிள்கள் டிஃபால்ட் ஆக பப்ளிக் ஆகும்.
அவையாவன பின் வரும் இடங்களில் ஆக்சஸ் செய்யப்படுகின்றது.
1. அந்த கிளாசின் உள்ளே
2. கிளாசின் வெளிப்புறம்.
3. அந்த கிளாசின் சைல்ட் கிளாசில்.
ப்ரைவேட் மெம்பர்கள்
private என்ற ஸ்பெசிஃபையருடன் குறிப்பிடப்படும் வேரியபிள்கள் மற்றும் ஃபங்க்சன்கள் அந்த கிளாசின் உட்புறம் மட்டுமே
ஆக்சஸ் செய்ய இயலும்.
class
MyClass
{
private
$car =
"skoda";
$driver = "SRK";
function
__construct($par) {
// Statements here run every
time
// an instance of the class
// is created.
}
function
myPublicFunction()
{
return("I'm visible!");
}
private
function
myPrivateFunction()
{
return("I'm not visible outside!");
}
}
Protected
என்ற ஸ்பெசிஃபையருடன் குறிப்பிடப்படும் வேரியபிள்கள் மற்றும் ஃபங்க்சன்கள்
ப்ரடக்டெட் மெம்பர்கள் ஆகும்.
இவை.
அந்த
கிளாசின் உள்ளே மற்றும் அதன் சைல்ட் கிளாஸ் ஆகியவற்றில் ஆக்சஸ் செய்ய இயலும்.
class
MyClass
{
protected
$car =
"skoda";
$driver = "SRK";
function
__construct($par) {
// Statements here run every
time
// an instance of the class
// is created.
}
function
myPublicFunction()
{
return("I'm visible!");
}
protected
function
myPrivateFunction()
{
return("I'm visible in child class!");
}
}
இன்டெர்ஃபேசில்
மெத்தட்களின் அறிவிப்பு மட்டுமிருக்கும். அவை ஒரு கிளாசால் இம்ப்லிமெண்ட் செய்யும்
பொழுது அவற்றின் இம்ப்லிமெண்டேசன் இருக்கும்.
interface
Mail
{
public
function
sendMail();
}
கிளாஸ்
ஆனது
class
Report
implements
Mail
{
// sendMail() Definition goes here
}
ஒரு
வேரியபிளில் உள்ள மதிப்பை மாற்ற இயலும் . ஆனால் ஒரு கான்ஸ்டண்டில் ஒரு தடவை
மதிப்பிருத்தப்பட்டால் அதன் பின் மாற்ற இயலாது.
class
MyClass
{
const
requiredMargin =
1.7;
function
__construct($incomingValue) {
// Statements here run every
time
// an instance of the class
// is created.
Abstract
என்ற கீவேர்டுடன் குறிப்பிடப்படும் கிளாஸ்கள் அப்ஸ்ட்ராக்ட் கிளாஸ் ஆகும்.
இவற்றிற்கு ஆப்ஜெக்ட் உருவாக்க இயலாது. ஆனால் இந்த கிளாசை இன்ஹெரிட் செய்து அதற்கு
ஆப்ஜெக்ட் உருவாக்கலாம்.
இதன் உள்ள
அப்ஸ்ட்ராக்ட் மெத்தட்கள் மற்றும் இம்ப்லிமெண்டேசனுடன் கூடிய மெத்தட்கள் இரண்டுமே
இருக்கலாம்.
abstract
class
MyAbstractClass
{
abstract
function
myAbstractFunction()
{
}
}
ஓரு
கிளாஸ் மெம்பரை static என்ற கீவேர்டுடன் குறிபிட்டால் அதை அதற்கு ஆப்ஜெக்ட்
உருவாக்கமலேயே அனுக முடியும் அதாவது கிளாஸ் பெயர் கொண்டே அவற்றை ஆக்சஸ் செய்யலாம்.
<?php
class
Foo
{
public static $my_static = 'foo';
public function staticValue() {
return self::$my_static;
}
}
print
Foo::$my_static
.
"\n";
$foo = new Foo();
print
$foo->staticValue() . "\n";
?>
Final
என்ற கீவேர்டுடன் அறிவிக்கபடும் ஃபங்க்சன்களை அதன் சைல்ட் கிளாசில் ஓவர் ரைட்
செய்ய இயலாது.
ஃபைனல்
கீவேர்டுடன் குறிப்பிடபடும் கிளாஸ்களை இன்ஹெரிட் செய்ய இயலாது.
<?php
class
BaseClass
{
public function test() {
echo "BaseClass::test() called<br>";
}
final public function moreTesting() {
echo "BaseClass::moreTesting()
called<br>";
}
}
class
ChildClass
extends
BaseClass
{
public function moreTesting() {
echo "ChildClass::moreTesting()
called<br>";
}
}
?>
சைல்ட்
கிளாசில் கன்ஸ்ட்ரக்டர்களை முதலில் இருந்து எழுதாமல் பேஸ் கன்ஸ்ட்ரகடரை அழைத்து
விட்டு பின்பு கூடுதல் வரிகளை மட்டும் சேர்த்துக் கொள்ளலாம்.
class
Name
{
var
$_firstName;
var
$_lastName;
function
Name($first_name, $last_name) {
$this->_firstName = $first_name;
$this->_lastName = $last_name;
}
function
toString()
{
return($this->_lastName .", " .$this->_firstName);
}
}
class
NameSub1
extends
Name
{
var
$_middleInitial;
function
NameSub1($first_name, $middle_initial, $last_name) {
Name::Name($first_name, $last_name);
$this->_middleInitial = $middle_initial;
}
function
toString()
{
return(Name::toString() . " " . $this->_middleInitial);
}
}
ஒரு
கிளாசின் அதே பெயரை கன்ஸ்ட்ரக்டருக்கு வைக்கலாம். மேல் கண்ட நிரல் அதற்கு சான்றாக
உள்ளது.
நன்றி
முத்து
கார்த்திகேயன் ,மதுரை.