sql >> Databáze >  >> NoSQL >> MongoDB

Instalace pluginu mongoose friends s MeanJS

Instalace je snadná pomocí npm, jednoduše:

npm install mongoose-friends --save

S MEAN.JS nemám žádné zkušenosti, ale zdá se, že jde z větší části o sbírku generátorů pro vytvoření úhlové/expresní aplikace se vzorem CRUD. Zdá se, že následuje filozofie rámce vytvořit přátelství jako zdroj CRUD.

Pomocí yo jak navrhují:

yo meanjs:crud-module friendship

To vygeneruje MVC pro model přátelství, ale vytvoří některé nesprávné předpoklady o modelu samotném, konkrétně že jde o model mongoose první třídy. S tímto pluginem tomu tak není. Přátelství jsou spíše součástí vložené kolekce v uživatelském záznamu, plugin pro ně poskytuje metody CRUD.

Nejprve přidejte plugin do svého uživatelského modelu.

// in app/models/user.server.model.js
var friends = require("mongoose-friends");
// ...
UserSchema.plugin(friends());

Vygenerovaný model na app/models/friendship a odkazy na něj ve vygenerovaných souborech bude nutné odstranit. Místo Friendship model, přátelství budou CRUD'd pomocí metod pluginu přidaných k vašemu User model.

Ovladač vygenerovaný na adrese app/controllers/friendships.server.controller.js bude pravděpodobně vyžadovat nejvíce změn.

create , například by se změnilo z tohoto:

var friendship = new Friendship(req.body);
friendship.user = req.user;
friendship.save(callback);

Něco víc jako:

req.user.requestFriend(req.body.user, callback);

Trasy se mohou také změnit v závislosti na tom, jak vaše aplikace používá přátelství. Přátelství pluginu nejsou prvotřídním zdrojem, ale spíše vloženou sbírkou uživatele. Jako takové neexistuje žádné veřejné /friendships například trasa. Buď by tato trasa musela vracet pouze přátele přihlášených uživatelů, nebo byste chtěli namapovat trasu přátelství specifickou pro daného uživatele, např. /users/ID/friendships , v případě, kdy byla přátelství uživatele viditelná pro jiné uživatele než samotný uživatel.

Každopádně je to nepochybně žalostně neúplné a možná dokonce zavádějící, ale doufám, že to stačí, abyste mohli začít s implementací.




  1. Mongoose.aggregate(pipeline) propojuje více kolekcí pomocí $unwind, $lookup, $group

  2. Dotazování pomocí spojení a filtrů v Mongoose

  3. Mongodb odpovídá znakům s diakritikou jako základnímu znaku

  4. Proč je výkon Mongodb lepší v Linuxu než ve Windows?