【发布时间】:2014-05-29 16:06:18
【问题描述】:
我有一个 mongo 集合,如下所示(Foo(X) == 键;Bars == 值): 编辑 - 我来自关系数据库背景。显然我的收藏看起来不像下面,但你明白了......
+--------+--------+--------+
| Foo1 | Foo2 | Foo3 |
+--------+--------+--------+
| Barbar | Barbar | Bar |
| bar | Bar | BarBar |
| Bar | barbar | barBar |
| ... | ... | ... |
允许我的客户过滤数据对我来说很重要。有时,所有列都有过滤器,有时没有列有过滤器,介于两者之间。目前,我正在处理以下问题:
客户
Var aFoo1Filter = ["bar"]
Var aFoo2Filter = ["Barbar", "BarBar"]
Var aFoo3Filter = ["barbar", "bar"]
//Where the user can affect the array through some other code
服务器
Meteor.publish("foos", function (aFoo1Filter, aFoo2Filter, aFoo3Filter ) {
return FooCl.find({Foo1: {$in: aFoo1Filter},
Foo2: {$in: aFoo2Filter},
Foo3: {$in: aFoo3Filter}},
{limit: 10});
});
我希望通过将一个对象或一个字符串从客户端传递到服务器来简化这一点,但是这两种尝试都没有奏效。在下面查看我的尝试:
尝试 #1 - 传递字符串
客户
Var sFilter = "Foo1: {$in: [\"bar\"]},
Foo2: {$in: [\"Barbar\", \"BarBar\"]},
Foo3: {$in: [\"barbar\", \"bar\"]}"
服务器
Meteor.publish("foos", function (sFilter) {
return FooCl.find({sFilter},
{limit: 10});
});
/////////////////
尝试 #2 - 穿过对象
客户
var oFilter = {
Foo1: "bar"
}
服务器
Meteor.publish("foos", function (oFilter) {
return FooCl.find({oFilter},
{limit: 10});
});
目前我的机器不在身边,因此我无法提供有关所引发错误类型的更多详细信息。希望今晚有更多的信息。感谢您的帮助!
【问题讨论】:
标签: javascript mongodb meteor