水线包含一个关联属性
Waterline contains on association attributes?
我有一个填充了用户的模型。我想做一个查找其中一个用户= someString。
使用水线工具我可以这样做
Partie.find().populate('users').where({category:{'contains':'sport'}}).exec(function(e,r){
console.log(r);
res.json(200,r);
});
但是我如何使'users'上的包含?这是一个数组
"users": [
{
"username": "firstUser",
"createdAt": "2015-07-30T15:33:57.662Z",
"updatedAt": "2015-07-30T15:33:57.662Z",
"id": "55ba43e58cce9ee80865271b"
},
{
"username": "someUsername",
"createdAt": "2015-08-04T12:14:50.291Z",
"updatedAt": "2015-08-04T12:14:50.291Z",
"id": "55c0acba2d1502ed2faf2b3b"
}
],...
不确定这是否可能。请随意提出建议
您可以将第二个参数传递给填充,其中包含查询的条件,例如:
Partie.find().populate('users', {where: {username: "someUsername"}})...
根据我的经验(使用最新水线),上面的示例只将匹配给定用户名的用户填充到party对象中。
然而,在我的机器上,它不限制从搜索查询返回的"party"(也许这与我的waterline/postgres适配器版本有关)。我通过过滤返回后的完整数组(使用lodash)来解决这个问题:
res.json(_.filter(parties, function(party){
// Pluck all usernames and check if 'someUserName' is attending this party
return _.contains(_.pluck(party.users, 'username'), 'someUserName');
}));
请注意,对于大型数据集,不建议使用上面示例中的过滤器!
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- Sequelize:属性之间的命名冲突'播放列表'以及关联'播放列表'
- 如何更改与Backbone集合中的模型相关联的几个元素的css属性
- 在主要的JavaScript引擎中,在JavaScript关联数组(动态对象属性)中检索/插入的复杂性是多少
- 当我关联runat=“server”属性时,JQuery UI 按钮集在单选按钮上不起作用
- 解析 /page.xhtml 时出错:跟踪错误[行: 42] 与元素类型“id”关联的属性“{1}”应使用左引号
- Javascript:使用value属性对关联数组进行排序,而不转换为对象数组
- 使用FOR属性从与单选按钮关联的html标签中获取值
- 将泛型函数动态关联到对象属性时的作用域.(模块模式)
- 将 model.set 与主干关联一起使用时合并属性
- 自动完成json关联属性
- 如何静态声明一个属性名(键)包含破折号的Javascript对象实例(关联数组)?
- 将唯一属性关联到JavaScript中的匿名函数
- 在关联数组的对象中查找重复属性
- 错误记录关联数组属性是使用' util. '的函数.在node.js中检查
- 使用JavaScript修改与给定CSS类关联的CSS属性
- 水线包含一个关联属性
- 属性名称“;var”;在javascript关联数组中
- getComputedStyle() 和可以具有与其关联的 url 的属性