-
Notifications
You must be signed in to change notification settings - Fork 2
MongoDB init
Viz https://docs.mongodb.org/manual/installation/#mongodb-community-edition a postupuj podle návodu pro svůj OS, použij výchozí konfiguraci a podle instrukcí databázi spusť a zkontroluj, že běží.
Pro vytvoření kolekcí s indexy a testovacími daty použij nástroj mongorestore
.
$ mongorestore --db=annotator data/annotator/
Pokud ti Mongo neběží s výchozím nastavením, viz mongorestore --help
pro možnosti připojení.
Že se kolekce správně vytvořily můžeš ověřit přes (v mongo konzoli):
> use annotator
switched to db annotator
> db.getCollectionNames()
[ "activePackages", "packages", "types", "users", "votes", "words" ]
Prakticky stačí:
import com.mongodb.client.MongoDatabase;
import com.mongodb.MongoClient;
MongoClient client = new MongoClient(); // automaticky se připojí k lokálnímu serveru
// databáze umožňuje operovat s jednotlivými záznamy
MongoDatabase database = client.getDatabase("annotator");
Podrobná dokumentace, jak poskytnout informace o databázovém serveru je na http://mongodb.github.io/mongo-java-driver/3.2/driver/reference/connecting/connection-settings/
S dokumentovou databází jsme nikdo zatím nepracovali, takže je možné, že se způsob ukládání dat ještě změní, pokud při vývoji narazíme na komplikace.
{
"_id": "id generated by mongo",
"email": "jon@snow.com",
"passwordHash": "$2y$10$8r4eBknggnK0.igvduoeM.n3YRVtYsEdSasvrveOIymDFHtJBInsm"
}
Typy k anotování, např. "město", "jméno", "zvíře", "věc" apod.
{
"_id": "id generated by mongo",
"type": "person"
}
Jednotlivá slova, o kterých se rozhoduje, jestli jsou určitého typu. Šum, tedy slova, o kterých víme, jestli k danému typu patří nebo ne, se ukládají do stejné kolekce (a mají parametr belongs_to_type bool namísto null).
{
"_id": "id generated by mongo",
"type_id": "references a type",
"word": "kachnička",
"belongs_to_type": null
}
Balíky slov, které můžou zpracovávat uživatelé. Balík vždy patří nějakému typu a odkazuje na slova, která obsahuje.
{
"_id": "id generated by mongo",
"type_id": "references a type",
"word_count": 3,
"words": [1, 2, 3]
}
### Vote
Záznamy o jednotlivých přiřazeních slov uživatelem.
{
"_id": "id generated by mongo",
"user_id": "references a user",
"word_id": "references a word",
"type_id": "references a type",
"belongs_to_type": true,
"vote_belongs_to_type": true,
"duration": 2300
}
Záznam o zpracovávaných balících.
{
"_id": "id generated by mongo",
"user_id": "references a user",
"package_id": "references a package",
"progress": 34
}