Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以在mongo中使用ajax post搜索布尔值,而无需服务器端转换?_Javascript_Ajax_Mongodb - Fatal编程技术网

Javascript 是否可以在mongo中使用ajax post搜索布尔值,而无需服务器端转换?

Javascript 是否可以在mongo中使用ajax post搜索布尔值,而无需服务器端转换?,javascript,ajax,mongodb,Javascript,Ajax,Mongodb,我有一个mongo集合,其中的文档包含一个布尔字段: { name : "Tom", active : true } { name : "Jerry", active : false } 在我的应用程序的客户端,我有一个元素,当单击该元素时,会触发一个AJAX帖子,查找所有包含active等于true或active等于false的文档 因此,ajax帖子如下所示: jQuery.ajax({ url : "/dev/search/searc

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

{ 
  name : "Tom",
  active : true
}
{
   name : "Jerry",
   active : false
}
在我的应用程序的客户端,我有一个元素,当单击该元素时,会触发一个AJAX帖子,查找所有包含active等于true或active等于false的文档

因此,ajax帖子如下所示:

jQuery.ajax({
                url : "/dev/search/searchMongo",
                type : "POST",
                data : {
                    JSON.stringify({ active : false })
                },
                success : function(html) {
                    alert(html)
                }
            })
问题是,查询中的false值作为POST的一部分被解析为字符串。据我所知,我对此无能为力

是否可以构造查询,以便mongo将字符串视为布尔值?
我查看了文档,找到了$type操作符,它允许您基于值数据类型进行搜索,因此我认为可能有某种方法可以实现我所寻找的。如果没有,我将加入一些服务器端转换逻辑,但如果可能的话,我希望避免这种情况。

这里的问题是如何发送数据以及如何在接收端处理数据。您真正想要做的是将请求主体作为JSON发布,然后确保您的服务器实现正在以您有可用数据的方式解析JSON主体。您所做的默认操作是表单编码

您的ajax请求应该如下所示:

jQuery.ajax({
    url : "/dev/search/searchMongo",
    type : "POST",
    data : JSON.stringify({
      active : false
    }),
    success : function(html) {
        alert(html)
    }
})
然后,服务器上的应用程序端解析主体,从而使JSON成为一个对象。对于JavaScript来说非常简单


另一方面,正常RESTful服务的主体解析器部分应该将JSON字符串转换为实际对象。对于您的服务器来说,除了JavaScript之外的其他语言也应该如此,但您可能需要查看解析器实现。

对不起,我在问题中过度简化了示例,省略了JSON.stringify。尽管如此,这并没有什么区别,因为它仍将被视为string@Travis它是关于主体解析器的。很抱歉在打字的时候意外地按下了“回复”按钮。但是还没有完成。投反对票的人只是几个你真的不应该听的人。哎呀。忽略我的最后一条评论,这是可以预期的。非常感谢。查询中的另一个字段存在问题。