Javascript mongodb布尔值存储为字符串

Javascript mongodb布尔值存储为字符串,javascript,mongodb,Javascript,Mongodb,在App.js中: var myobj= { school: true, address: false }; var myArray = []; myArray.push(myobj); updateSchool(myArray); function updateSchool(thisSchool) { $.ajax ({ type: "POST", url: '/update_school', data:

在App.js中:

var myobj= { school: true, address: false };     
var myArray = [];
        
myArray.push(myobj);

 updateSchool(myArray);

function updateSchool(thisSchool) {
  $.ajax
    ({
    type: "POST",
    url: '/update_school',
    data: {
        school: thisSchool, 
    },
   }
   })
在mongodb中,布尔值存储为字符串,如
[{school:“true”,address:“false”}]


谁能帮助我如何在mongodb中存储为布尔值。谢谢。

当您在
$.ajax()
数据中向传递对象时,它将转换为URL编码字符串(
应用程序/x-www-form-urlencoded
),该字符串不识别布尔数据类型。从:

当数据是对象时,jQuery从 对象的键/值对,除非processData选项设置为 错。例如,{a:“bc”,d:“e,f”}被转换为字符串 “a=bc&d=e%2Cf”

因此,为了正确保存布尔值,您需要在服务器中手动解析它,或者将负载作为JSON发送(
application/JSON
)。以下是在jquery中执行后者的方法:

函数writeObj(obj){
document.write(''+JSON.stringify(obj,null,4)+'');
}
功能更新学校(此学校){
$.ajax({
类型:“POST”,
//url:“/update_school”,
网址:'https://httpbin.org/anything',
contentType:'应用程序/json',
数据:JSON.stringify({
学校:这所学校,
}),
})
.完成(writeObj)
.失败(writeObj);
}
var myobj={
学校:是的,
地址:false
};
var myArray=[];
myArray.push(myobj);
更新学校(myArray)

你在用猫鼬吗?在这种情况下,您的模式如何?我不使用mongoose。所以没有模式。通过nodejs将此保存到mongodbt非常感谢。它起作用了。正如您提到的,我使用JSON.stringify发送数据,在app.js中使用JSON.parse(request,body.school)Nice。那也行。尽管如此,如果您使用的是
express
,您可以使用
app.use(express.json())
自动解析请求体中的json,以表示我正在使用express。再次感谢您的提示:)
app.post('/update_school', function(request, response) {
   ......
    dbo.collection("School").updateOne({_id: request.session.username},{$set: 
    {School:request.body.school}}, function(err, result){
    ...... }
    }