是否有可能搜索一个布尔在蒙古与ajax帖子没有服务器端转换



我有一个包含布尔字段的文档的mongo集合:

{ 
  name : "Tom",
  active : true
}
{
   name : "Jerry",
   active : false
}

在我的应用程序的客户端,我有一个元素,当点击它时,会触发一个AJAX post,查找所有包含active is = true或active is = false的文档。

所以ajax post如下:

jQuery.ajax({
                url : "/dev/search/searchMongo",
                type : "POST",
                data : {
                    JSON.stringify({ active : false })
                },
                success : function(html) {
                    alert(html)
                }
            })

问题是查询中的false值作为POST的一部分被解析为字符串。据我所知,我对此无能为力。

是否可以结构化查询,以便mongo将字符串视为布尔值?我已经浏览了文档,并找到了$type操作符,它允许您基于值数据类型进行搜索,因此我认为可能有一些方法可以实现我正在寻找的内容。如果没有,我会抛出一些服务器端转换逻辑,但如果可能的话,我想避免这种情况。

这里的问题是如何发送数据以及如何在接收端处理数据。您真正想做的是将请求的"主体"作为JSON发布,然后确保您的服务器实现以您拥有该数据的方式解析JSON主体。默认为"form encoded"。

你的ajax请求应该是这样的:

jQuery.ajax({
    url : "/dev/search/searchMongo",
    type : "POST",
    data : JSON.stringify({
      active : false
    }),
    success : function(html) {
        alert(html)
    }
})

然后,服务器端的应用程序端"解析"主体,允许JSON作为对象输出。

在另一端,正常的"RESTful"服务中的"body parser"部分应该将JSON"String"转换为实际对象。对于您的服务器来说,除了JavaScript之外的其他语言都应该是这种情况,但您可能需要查看解析器的实现。

最新更新