Addon:MongoDB
This is a Third-party Addon. Please use carefully on data that is backed up, and help make it better by reporting any comments or problems to the author, or issues to the bug tracker |
The MongoDB addon provides experimental MongoDB database support for Gramps 5.x or greater.
MongoDB is an open-source document-oriented NOSQL database.
Contents
Prerequisites
Note these instruction assume you are using Linux or development environment. As the Gramps AIO & MacOS installers do not come with the Prerequisites and can not be installed easily. see 10491 |
Install the following packages:
- mongodb
- python3-pymongo
Start and enable the database service.
Windows & MacOS
As the Gramps AIO & MacOS installers do not come with the Prerequisites and can not be installed easily. see 10491
- Windows
- If you really want to experiment with mongodb, (this is regarded as an extremely advanced activity), you will have to build up a development environment for Gramps under Windows and then add the mongodb prerequisites there. See Gramps for Windows with MSYS2
- MacOS
- The Mac bundle is aimed at normal users. Tinkerers can use MacPorts and have more-or-less the same environment as on Linux. Note that Homebrew just downloads the Gramps bundle dmg, so it won't help in this case. See: Mac OS X:Build from source:MacPorts
Creating a family tree
In the "Family Tree" tab of the Preferences, set the "Database backend" to MongoDB.
Enter the Host and Port if using anything other than the defaults.
In the Family Tree Manager, click New and enter a family tree name.
Click the Load Family Tree button.
Create or import some data.
Viewing a database using mongo
From the command line type:
$ mongo
At the prompt type:
> show dbs
You should see your family tree listed.
> use Family_Tree_1
> show collections
> db.person.find()
Now you should see some data.
Some query examples
> db.person.find({"gramps_id": "I0044"})
> db.person.find({"primary_name.surname_list.surname": "Garner"}).count()
> db.person.find({"primary_name.surname_list.surname": "Garner", "gender": 0}).count()
> db.event.find({"type.string": "Birth"})
See also
Issues
- 10491 [Gramps AIO & MacOS installers] Add prerequistes MongoDB [Wontfix][Windows use : MSYS2/ MacOS use: MacPorts]