发现条件查询,只要有这个元素就会将整个文档返回(若没有,返回null),而不是返回查询的那个条件所查到的数组.
User.findOne({'userId':req.session.user.userId,'message.with':req.body.withWhom},(err,doc)=>{
console.log(doc)
})
那么我只想要查询并返回这个文档中的message相对应的那个数组该怎么办呢?
发现find方法后面还有一个参数,findOne({},{},callback),第二个参数就是限制返回的数据的,如下就是只返回查询到的message项
User.findOne({'userId':req.session.user.userId,'message.with':req.body.withWhom},{'message.$':1},(err,doc)=>{})
那么插入也是同理,要插入进一个数组中的一个数组
User.update({'userId':userId,'message.with':sendTo},{
$push:{
"message.$.myMessageContent":{
name:'我',
sendTime:messageSendTime,
content:messageContent
}
}
},(err,doc)=>{})