为了账号安全,请及时绑定邮箱和手机立即绑定

请问下在mongodb中的push如何定位?具体如下

请问下在mongodb中的push如何定位?具体如下

慕后森 2022-02-19 15:11:25
mongodb中存储着类似结构的数据:{_id:"10001",array:[{sub_id:"1",sub_array:["text11","text12","text13"]},{sub_id:"2",sub_array:["text21","text22","text23"]},{sub_id:"3",sub_array:["text31","text32","text33"]}]}直接向array中添加内容的话,很简单,利用$push操作符即可,但如果我想往sub_id为2的sub_array中push若干个字符串,应该如何定位?
查看完整描述

1 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

定位使用$elemMatch查找。
参考案例:
exports.updateReply2Async = function (opts) {

var results = {error_code: -1, error_msg: "error"};

var suggestID = helper.toObjectID(opts.doc.suggestID);

var filter = {_id: suggestID,"replies":{ $elemMatch:{rid:opts.doc.rid,replyname:'1100100'}}};

var update = {$set: {"replies.$.replycontent": opts.doc.replynewcontent,"replies.$.reply_at":new Date()}};

return opts.dbs.csdb.collection("suggests").findOneAndUpdateAsync(filter, update, {upsert: false})
.timeout(opts.configs.timeoutnormal)
.then(function (value) {
if (value) {
results.error_code = 0;
results.error_msg = "ok";
results.suggest = value;
} else {
results.error_code = 20002;
results.error_msg = "修改回复数据失败";
}

return results;
});

};



查看完整回答
反对 回复 2022-02-21
  • 1 回答
  • 0 关注
  • 267 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信