javascript - 通过 mongoose 更新 mongodb 内嵌套数组中的特定值

标签 javascript node.js mongodb mongoose nosql

我有以下架构(没有_id) -

 {uid: String,
 inbox:[{msgid:String, someval:String}]
 }

现在,在请求中我得到了 msgid,并在下面的 Mongoose 查询中使用它,如下所示 -

 my_model.findOne({'inbox.msgid':'msgidvaluexyz'}
  , function(err, doc) {           
    console.log(doc);
    return !0; })

现在,问题是我得到了整个文档,其中包含特定消息以及收件箱中的其他消息 -

   Output-
   {uid:'xyz',
    inbox:[
     {msgid:,someval},
     {msgid:'our queried msgid',someval}, //required sub array
     {msgid:,someval},
      ]
       }

现在,当文档收件箱太大而无法循环时,我可以使用什么查询来获取特定的子数组。

最佳答案

使用$ positional selection operator让返回的文档仅包含匹配的 inbox 元素:

my_model.findOne({'inbox.msgid':'msgidvaluexyz'}
  , {'inbox.$': 1}
  , function(err, doc) {           
    console.log(doc);
    return !0; })

关于javascript - 通过 mongoose 更新 mongodb 内嵌套数组中的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15827207/

相关文章:

javascript - 在 Angular2 底部滚动的 div

javascript - 随机化页面中列表项的顺序时缺少元素

javascript - 没有 jQuery Mobile 的 scrollstop 事件

Node.js Websockets 套接字.IO

node.js - 用于 ActiveMQ 调用的 npm 模块

mongodb - 在 MongoDB 中存储 friend 关系?

javascript - 如何检查多个局部变量的相同 if 条件

node.js - Node JS decipher.final() 抛出 "wrong final block length"错误

python - Scrapy中使用多蜘蛛时如何通过管道将数据保存到MongoDB?

mongodb - 如何将 MongoDB 图表嵌入到应用程序中