我想更新我的数据库。我有两个单独的文件,我想更新它们。现在,它工作一次,第二次不起作用。
delsrequest: function(obj, callback) {
console.log("object in deslrequest",obj)
var rusername=obj.rusername;
var susername=obj.susername;
console.log("rusername",rusername,"susername",susername)
var ty = {"username.requestssent":rusername}
var isbn = obj.isbn;
Books.find({"username":rusername},function(err,resp){
if(err){
console.log("there is err",err)
}
else{
console.log("resp is ",resp)
console.log("resp[0].requestssent is",resp[0].requestssent.length);
var newrrs =[];
console.log("start")
for(var i =0;i<resp[0].requestssent.length;i++){
console.log("inside for loop",i)
console.log("resp[0].requestssent[i]",resp[0].requestssent[i])
console.log(resp[0].requestssent[i].isbn,isbn)
if(resp[0].requestssent[i].isbn==isbn){
newrrs = resp[0].requestssent.splice(i,1)
console.log("resp",resp)
}
}
console.log("?end")
console.log("resp before",resp)
console.log("newrrs",newrrs)
Books.findOneAndUpdate({"username":rusername},{"requestssent":resp[0].requestssent},function(err,resp){
if(err){
console.log("x",err)
}
else{
console.log("y")
//callback(null,resp)
}
})
}
}).then(Books.find({"username":susername},function(err,res){
if(err){
console.log("there is err",err)
}
else{
//requestsrecieved
console.log("res is ",res)
console.log("res[0].requestsrecieved is",res[0].requestsrecieved.length);
var newrrs =[];
var gtarr;
console.log("start")
for(var i =0;i<res[0].requestsrecieved.length;i++){
console.log("inside for loop",i)
console.log("resp[0].requestsrecieved[i]",res[0].requestsrecieved[i])
console.log(res[0].requestsrecieved[i].isbn,isbn)
if(res[0].requestsrecieved[i].isbn==isbn){
newrrs = res[0].requestsrecieved.splice(i,1)
console.log("res",res)
console.log("res[0].requestsrecieved",res[0].requestsrecieved)
gtarr=res[0].requestsrecieved;
}
}
console.log("susername",susername)
console.log("gtarr",gtarr)
Books.findOneAndUpdate({"username":susername},{"requestssent":gtarr},function(err,response){
if(err){
console.log("x",err)
}
else{
console.log("y")
console.log("resp[0].requestsrecieved",response)
callback(null,response)
}
})
}
})
)
},
第一个Books.find和findOneandUpdate完美运行。第二个没有更新。当它到达这里时,它显示正确的gtarr值。删除了一个我要删除的值。我也更新它。但是,它只是没有更新它。
console.log("susername",susername)
console.log("gtarr",gtarr)
Books.findOneAndUpdate({"username":susername}, {"requestssent":gtarr},function(err,response){ if(err){
我看不到从mongodb数据库中删除任何内容。我试过看一切,我无法理解它的相同代码。有一次它有效,第二次没有。我也想过,因为Async可能是迭代,这就是为什么它会在之后.then。有人可以请帮帮我。