MongoDBRef ��

(PECL mongo >=0.9.0)

���

�����������ڴ�����ͬ�����ж����������������ӡ�

Motivation�����������Ҫ�������������е��ĵ�����򵥵ķ������ڵ�ǰ�ĵ��д���һ���ֶΡ����磬�� "people" ���Ϻ� "addresses" ���ϣ�������Ҫ"����"ÿ�� person �Ͷ�Ӧ�� address �����ԣ�

Example #1 �����ĵ�

<?php

$people 
$db->people;
$addresses $db->addresses;

$myAddress = array("line 1" => "123 Main Street"
    
"line 2" => null,
    
"city" => "Springfield",
    
"state" => "Vermont",
    
"country" => "USA");

// save the address ����address�ĵ�
$addresses->insert($myAddress);

// save a person with a reference to the address ����һ��people�������ղŵ�address
$me = array("name" => "Fred""address" => $myAddress['_id']);
$people->insert($me);

?>

Ȼ�����ǿ��ԣ��ѱ����� "people" �����е� MongoId ��Ϊ��������ѯ "address" ���ϣ�����ȡһ���˵ĵ�ַ��

������������и���һ���Եĵ���������Dz�֪���ĸ����ϣ��������ݿ⣩�а�������Ҫ���õ��ĵ��� MongoDBRef ���Ǹ���ѡ������һ������ͨ�õĸ�ʽ�����е����������ݿⶼ���Դ�������

���ÿ��"��"��һϵ�й���������������ϵ���Ϣ�����簮�á��˶����鼮�ȣ����ǿ��������� MongoDBRef ����������ÿһ�� ���� �����ĸ����ϣ�

Example #2 Creating MongoDBRef links

<?php

$people 
$db->selectCollection("people");

// model trains are in the "hobbies" collection
$trainRef MongoDBRef::create("hobbies"$modelTrains['_id']);
// soccer is in the "sports" collection
$soccerRef MongoDBRef::create("sports"$soccer['_id']);

// now we'll know what collections the items in the "likes" array came from when
// we retrieve this document
//  # ���ڵ����Ƕ�ȡ����ĵ���ʱ�򣬾Ϳ���֪��"likes"�ֶ��������Ԫ�طֱ������ĸ������ˡ�
$people->insert(array("name" => "Fred""likes" => array($trainRef$soccerRef)));

?>

���ݿ����ÿ��Ա����Ϊ�����ӣ�����ָ����һ���ĵ���Ψһ��ַ���������Զ���ȡ���߸������á����ӡ���

һ�����ݿ����ý�����һ����ͨ�������飬���� MongoDBRef ��ʵ�����������������������������Щ��ͬ�������ֻ������̬�����������������á� ��ע���������ε���˼����Ϊ 1.һ�����ݿ������볬�������ƣ����ơ�ɾ�����޸ĵȲ�������Ӱ��ԭ�����ĵ��� 2.��ȡ������ÿ��Ե�ָ֪����ĵ���λ�ã�������֪���ĵ������ݣ�Ҫ�ֶ������á� 3.���"����"���浽Mongo��ʱ�������ͨ����

��ժҪ

MongoDBRef {
/* ���� */
public static create ( string $collection , mixed $id [, string $database ] ) : array
public static get ( MongoDB $db , array $ref ) : array
public static isRef ( mixed $ref ) : bool
}

�μ�

MongoDB �ٷ������ĵ� » databases references.

Table of Contents