文档格式这样:
"_id" : ObjectId("5cffbbf4d868b7af240d679e"),
"dateid":"1560263668115",
"comment" : [
{
"user" : "yyyyyy",
"content" : "213123",
"constructdate" : "2019-06-22 07:02:08.688"
},
{
"user" : "kkkk",
"content" : "213gggg123",
"constructdate" : "2019-06-22 07:02:08.687"
}
]
我在终端上操作以下代码可以工作,能删除满足条件的comment更新文档
db.getCollection('article').update({'dateid':'1560263668115'},{$pull:{"comment":{"constructdate" : "2019-06-22 07:02:08.687"}}})
我在Nodejs上代码如下
删除操作返回result: { n: 0, nModified: 0, ok: 1 }
数据没删掉
将收到的req.body.datetime复制进终端也能操作成功。
app.post('/articledetail/api/delmessage',(req,res)=>{
console.log(req.body);
let ariticledate=req.body.dateid;
let commentdate=req.body.datetime;
let searchobj={'dateid':ariticledate};
let searchcallback=function(data){
return res.send('success');
}
let noresultcallback=function () {
return res.send("err");
}
MongoClient.connect(dburl,function(err,db){
if(err){return}
db.collection('aricle').update(searchobj,{$pull:{'comment':{'constructdate' : commentdate}}},function(err,data){
if(err){db.close();noresultcallback(err)}
if(data){
console.log(data);
db.close();
searchcallback(data);
}else{
db.close();
noresultcallback(data);
}
})
})
})