Tag: 关系

Loopback $ owner不适用于findById

我想通过回送得到关于我的用户的一些信息。 为此,我创build了一个与“accessToken”模型相关的“用户”模型,直到现在POST on / user,POST on / user / login和POST on / user / logout正在工作。 我join/common/models/user.json { "name": "user", "base": "User", "idInjection": true, "options": { "validateUpsert": true }, "properties": {}, "validations": [], "relations": { "accessTokens": { "type": "hasMany", "model": "accessToken", "foreignKey": "userId" } }, "acls": [ { "accessType": "EXECUTE", "principalType": "ROLE", "principalId": "$authenticated", "permission": "ALLOW", […]

mongoose关系devise

我最近开始在一个Node.js应用程序中使用Mongoose和Express.js,我有一个正确的方式来devise我的模式的问题。 我有几个有一些关系的模式,即位置模式有一个对象数组(它不是在这个上下文中的JS对象),而对象模式有它的位置属性。 我已经知道Mongoose中的关系是通过使用人口来解决的,但是当我实现这个方法的时候,我注意到我必须input很多重复的代码,也就是每当我想创build一个新的对象的时候,我也必须更新Location的数组对象,然后将该位置分配给该对象的属性。 在一个单独的查询中手动组装所有具有与我想从数据库中获取的位置相同的locationId属性的对象是不是更加简单? 我也考虑过将对象存储在位置文档的数组中(作为子文档),但是我决定要能够独立于位置(不查询位置)使用对象(创build,移除,更新),所以这种方法我猜不符合我的需求。 但是,在我的情况下,群体也有其缺点,所以我想这是最好的方式去手动收集由该位置的ID单独查询中的特定位置的对象。 我想听到这个技术的一些专业或高级用户对deviseMo​​ngoose模式的意见,以便我和其他人不会在后来保持和扩展我们的应用程序时遇到麻烦。 以下是我目前的模式: var locationSchema = new mongoose.Schema({ title: String, objects: [{ type: String, ref: 'object' }] }); var objectSchema = new mongoose.Schema({ title: String, location: { type: String, ref: 'location' } });

如何在一个模型中使用远程方法从另一个模型返回信息?

所以我设置了一些非常简单的方法来学习如何使用Loopback。 模型如下: Person – based on built in User model food_pref typeId (number) personId (number) food_type type (string) 关系: Person has many food_prefs (foreign key: personId) food_pref belongs to Person (foreign key: personId) food_pref belongs to food_type (foreign key: typeId) 一个自动生成的方法被创build,返回基于Person的id的food_prefs。 People/{id}/foodPrefs 这返回: [ { "typeId": 0, "personId": 0, "id": 0 } ] 我想要做的是添加一个名为“getPrefs”的单独的远程方法,该方法根据food_pref中的typeId返回food_type下的types名称。 所以我们假设typeId是1,而food_types中的id是Italian […]

Bookshelf.js:如何定义交叉关系?

我怎样才能定义hasMany空间 – >账户关系? var Space = Bookshelf.Model.extend({ tableName : 'spaces', // Account variable does not exist :/ }); var Account = Bookshelf.Model.extend({ tableName : 'accounts', spaceId : function() { return this.belongsTo(Space); }, }); 什么是定义这个的正确方法? PS书架js库没有标签: http : //bookshelfjs.org/

nodejs / loopback:定义关系似乎没有反映在数据库上?

我正在使用strongloop loopback创build一个API。 我已经定义了我的模型,基本上所有的都是好的。 但是我有一个理解loopback如何处理关系的问题。 并不是我所定义的所有关系似乎都真正反映在数据库和界面上。 例如,我有一个模型song ,它 hasAndBelongsToMany albums hasAndBelongsToMany playlists hasAndBelongsToMany userplaylists belongsTo artist 这里是/common/models/song.json { "name": "song", "plural": "song", "base": "PersistedModel", "idInjection": true, "properties": { //some more properties of song }, "validations": [], "relations": { "albums": { "type": "hasAndBelongsToMany", "model": "album", "foreignKey": "" }, "artist": { "type": "belongsTo", "model": "artist", "foreignKey": "" }, […]

在Strongloop中同时保存多个模型

我正在开发一个完全基于StrongLoop REST API的应用程序作为后端。 有一个registry单。 用户填写个人信息以及他/她所在公司的一些详细信息。 用户和公司是不同的模型,并有一个“有一个”的关系。 validation+同时将表单保存到两个模型的最佳方法是什么? (最好在一个请求中) 有几件事情可以使这个成为可能,但是我找不到任何有关它的文档,或者有点难看: 包含相关公司模型的POST请求,类似于GET请求中存在的筛选器[include]选项。 在不实际保存模型的情况下获取validation错误的一种方法,因此您可以在两个模型validation后保存整个表单(但是,需要多个请求) 将整个表单发送到用户模型,并保存公司模型服务器端。 有什么想法吗?

meteor:如何使关系一对多?

我正在尝试创build一个像twitter一样的追随者系统,我只想为以下用户显示post。 我不确定我的发布代码。 我有2个系列: 1- Posts { "_id": "3HrXtbHZ8WqHJJpyC", "post": " some text", "owner": "Wdc84ED9zt4Ssxsh4", "username": "MJK", "createdAt": "2016-01-28T11:53:33.253Z" } 2- Follwers { "_id": "ShKWgeaP9BFPuQWwL", "follower": "MJK", "following": "michael" } 发布代码 Meteor.publish('posts', function() { var user = Meteor.users.findOne({_id: this.userId}).username; var follower = Followers.find({followers: user}).following; var posts = Posts.find({username: {$in: follower}}); return posts; }); 订阅 Meteor.subscribe('posts'); 客户端代码 […]

bookshelf.js关系有很多错误

在使用书架的hasMany调用中出现以下错误: A valid target model must be defined for the roles hasMany relation Role.js var Data = require('../server-includes/Data'), User = require('./User'); var Role = Data.bookshelf.Model.extend({ tableName: 'roles', users: function() { return this.hasMany(User, 'role_id'); } }); module.exports = Role; user.js的 var Data = require('../server-includes/Data'), Role = require('./Role'); var User = Data.bookshelf.Model.extend({ tableName: 'users', role: function() { […]