2017 © Pedro Peláez
 

library mongo-odm

image

lvinkim/mongo-odm

  • Monday, July 30, 2018
  • by lvinkim
  • Repository
  • 2 Watchers
  • 0 Stars
  • 6 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 6 Versions
  • 0 % Grown

The README.md

mongo-odm

支持版本 mongodb 3.2.0 以上, (*1)

安装

$ composer require lvinkim/mongo-odm

方法概述

  • 通过 ID 获取单个 Entity 的方法:findOneById($id)
  • 通过 filter 获取单个 Entity 的方法:findOne($filter)
  • 通过 $filter 获取多个 Entity 的方法:findMany($filter, ...)
  • 删除单个 Entity 的方法:deleteOne($entity)
  • 通过 $filter 批量删除的方法:deleteMany($filter)
  • 插入单个 Entity 的方法:insertOne($entity)
  • 插入多个 Entity 的方法:insertMany($entities)
  • 更新单个 Entity 的方法:updateOne($entity)
  • 更新多个 Entity 的方法:updateMany($entities)
  • 插入或更新单个 Entity 的方法:upsertOne($entity)
  • 插入或更新多个 Entity 的方法:upsertMany($entities)

使用说明

步骤1. 定义 Entity

use Lvinkim\MongoODM\Annotations as ODM;
use Lvinkim\MongoODM\Entity;
use MongoDB\BSON\ObjectId;

/**
 * Class User
 * @ODM\Entity()
 */
class User
{
    /**
     * @var ObjectId
     * @ODM\Id
     */
    private $id;
    /**
     * 名称
     * @var string
     * @ODM\Field(type="string")
     */
    private $name;

    /**
     * @return ObjectId
     */
    public function getId(): ?ObjectId
    {
        return $this->id;
    }

    /**
     * @param ObjectId $id
     */
    public function setId(ObjectId $id): void
    {
        $this->id = $id;
    }

    /**
     * @return string
     */
    public function getName(): string
    {
        return $this->name;
    }

    /**
     * @param string $name
     */
    public function setName(string $name): void
    {
        $this->name = $name;
    }
}

步骤2. 定义 Repository 类

use Lvinkim\MongoODM\Repository;

class UserRepository extends Repository
{

    /**
     * 返回数据库中的表名, 例如: db.user
     * @return string
     */
    protected function getNamespace(): string
    {
        return 'test.user';
    }

    /**
     * 返回数据表的对应实体类名
     * @return string
     */
    protected function getEntityClassName(): string
    {
        return User::class;
    }
}

步骤3. 使用示例


use Lvinkim\MongoODM\DocumentManager; use MongoDB\Driver\Manager; $uri = 'mongodb://docker.for.mac.localhost'; $driver = new Manager($uri); $documentManager = new DocumentManager($driver); $userRepository = $documentManager->getRepository(UserRepository::class); // 插入 $user = new User(); $user->setName("your name"); $userRepository->insertOne($user); // 更多方法.... 参见 Functional/RepositoryTest.php 的各用例

The Versions

30/07 2018

dev-master

9999999-dev

  Sources   Download

The Requires

 

The Development Requires

30/07 2018

v0.2.3

0.2.3.0

  Sources   Download

The Requires

 

The Development Requires

26/07 2018

v0.2.2

0.2.2.0

  Sources   Download

The Requires

 

The Development Requires

26/07 2018

v0.2.1

0.2.1.0

  Sources   Download

The Requires

 

The Development Requires

26/07 2018

v0.2.0

0.2.0.0

  Sources   Download

The Requires

 

The Development Requires

24/07 2018

v0.1.0

0.1.0.0

  Sources   Download

The Requires

 

The Development Requires