bonesmccoy/bongo-fixture-loader

简单的Mongo数据库 fixture 加载器

1.1.3 2016-05-24 14:30 UTC

README

https://travis-ci.org/bonesmccoy/bongo-fixture-loader.svg?branch=master https://coveralls.io/repos/github/bonesmccoy/bongo-fixture-loader/badge.svg?branch=develop

Bon(es)(mon)go fixture loader for mongodb.

我知道我正在重新发明轮子,但有时表现得像穴居人也很不错 ;)

安装

$ composer require-dev bonesmccoy/bongo-fixture-loader

配置

`/yourprojectRoot/config/bongo.yml` 中创建一个 yaml 文件

mongo_data_store:
    db_name: your_db_name
    host: localhost
    port: 27017
    username: ''
    password: ''
    connect: true

fixtures:
    paths:
        - path/to/fixture/from/project/root

在配置的路径下创建一个或多个 fixtures

<collectionname>:
    - object 1
    - object 2
    - object 3

特殊字段语法

  • 获取 ObjectId(或 PHP 中的 MongoId)
"_id" : "<id@{24 CHARS HEX STRING}>
  • 获取 DateTime 对象
"dateTimeField" : "<YYYY-MM-DD HH:mm:SS>"
"dateField": "<YYYY-MM-DD>"

例如,一个论坛帖子列表,其中第一个是第二个的父级

posts:
    - {"_id" : "<id@56eb45003639330941000001>", "parentId" : "<id@56eb45003639330941000001>", "senderId" : 1, 'title' : 'title  1', 'body' : 'body content 1', 'date' : '<2016-03-04 12:00:00>' }
    - {"_id" : "<id@56eb45003639330941000002>", "parentId" : "<id@56eb45003639330941000001>", "senderId" : 2, 'title' : 'title', 'body' : 'body content 2', 'date' : '<2016-03-04 13:00:00>' }

将保存为

{
    "_id" : ObjectId('56eb45003639330941000001'),
    "parentId: ObjectId('56eb45003639330941000001'),
    "senderId": 1,
    ...
    ...
    "date" : ISODate('2016-03-04 12:00:00')
}

{
    "_id" : ObjectId('56eb45003639330941000002'),
    "parentId: ObjectId('56eb45003639330941000001'),
    "senderId": 1,
    ...
    ...
    "date" : ISODate('2016-03-04 13:00:00')
}

使用方法

加载 fixtures

$ bin/bongo-load /path/to/bongo.yml

要求

  • PHP > 5.4
  • mongo 扩展
  • symfony/yaml