Javascript 角度资源查询和MongoDB查询运算符存在问题

Javascript 角度资源查询和MongoDB查询运算符存在问题,javascript,angularjs,mongodb,Javascript,Angularjs,Mongodb,我的应用程序中的此位有问题: $scope.characters = Character.query({ q: { 'user.id': user.id, 'status': { '$ne': 'deleted' } }, f: { 'foo': 'bar' } }, function() { // do something }); 角色是一种角度资源 解析期间,Angular会删除“status”部分,因为键“$ne”以美元符号开头,如下所述: 我怎样才能避开这个问题

我的应用程序中的此位有问题:

$scope.characters = Character.query({
    q: { 'user.id': user.id, 'status': { '$ne': 'deleted' } },
    f: { 'foo': 'bar' }
}, function() {
    // do something
});
角色是一种角度资源

解析期间,Angular会删除“status”部分,因为键“$ne”以美元符号开头,如下所述:


我怎样才能避开这个问题?最好不更改我的后端(尽管作为最后手段,我可以在查询Mongo数据库之前在那里进行转换,比如用美元符号替换键中的英镑符号)。

查询参数通过URL传递(就像您执行GET请求一样)。为了使其工作,您应该对“不安全”字符进行编码。例如,URL中不允许使用美元符号,应进行编码(请参阅)

我建议您对查询参数进行编码,或者,如果您想避免这种情况,请尝试使用POST请求(尽管这不是非常restful)

有关如何编码URI组件的更多信息,请查看以下MDN条目:


角度资源已对参数进行编码。首先,它对它们调用toJson,对它们进行字符串化(并去掉以$-开头的键,这就是问题所在),然后URL对它们进行编码。