Ste*_*non 8 javascript mongodb meteor
如何在Meteor应用程序的Mongo查询中使用变量作为字段名称.
这是一个例子......
这会在大写子集的父ID的集合名称后,在我的请求控制器集合上运行查找.孩子是用户字段.
window[Meteor.request.controller.capitalise()]["find"]({ _id: Session.get('parent_id'), users: params.child }).count()
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我的控制器是集合项的变量名,它允许我有一行代码来查找控制器/集合的子代,但我需要能够将子字段名设置为变量.在上面的例子中,这将是用户,但我希望它是一个变量名.
我试过这个,但它不起作用.
window[Meteor.request.controller.capitalise()]["find"]({ _id: Session.get('parent_id'), [Session.get('child_collection_name').decapitalise()]: params.child }).count()
Run Code Online (Sandbox Code Playgroud)
哪里
Session.get('child_collection_name').decapitalise()
Run Code Online (Sandbox Code Playgroud)
返回用户
有任何想法吗?如果我能弄清楚如何在meteor中使用mongo查询中的变量名,那么它将大大减少我的代码占用空间.
Geo*_*off 14
查询只是一个JavaScript对象,因此您可以逐步构建它:
var query = { _id: Session.get('parent_id') };
var myCustomField = Session.get('child_collection_name').decapitalise();
var myCustomValue = params.child;
query[myCustomField] = myCustomValue;
var count = SomeCollection.find(query).count();
Run Code Online (Sandbox Code Playgroud)
这样做诀窍吗?