如何用mongoose更新这个文档中的数组中的对象中的数组里的值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用mongoose更新这个文档中的数组中的对象中的数组里的值?相关的知识,希望对你有一定的参考价值。

第一张图是我想要更新的数据,第二张图是我自己写的(但是修改不了),恳请大佬们指教指教,谢谢了

是数组常量的最简单的情况。一维,里面的元素仅仅是标量数值。 提问时注意你的言辞。又是错别字又是蔑称的,你写好发出来之前都不读一遍吗?对回答你问题的人这么点敬意都没有? “编程>>数组>>数组常量”放到程序框图中是一个数组常量的框架,放一个数值常量进来就确定了这个数组的结构,至于数值用默认的i32还是double或者其他类型,现在和你说了你也不懂。然后纵向拉长最外层边框,就同时显示了前面多个元素,现在就可以填入这几个元素的值了。填好后就是这个样子了。 “嘛”是在陈述句后面用的。疑问句后面应该用“吗”。 添加,不是填加,你也可以问是怎么填的。 称呼“东西”,你让我们情何以堪啊。 参考技术A 不知道还来不来得及,你可以试试
req.Model.update(_id:...,"more.id":...,

$set:
"more.$.biz_ext.$.meal_ordering": 你要修改的值

)

Mongoose - 如何从集合中的每个文档中检索对象数组?

【中文标题】Mongoose - 如何从集合中的每个文档中检索对象数组?【英文标题】:Mongoose - How to retrieve an array of objects from each document in collection? 【发布时间】:2019-02-07 23:52:49 【问题描述】:

我的集合中的每个文档看起来都像这样(JSON):


name: "Roger",
matches: [
    
        opponent: "Rafael Nadal",
        match_date: 1494536400000
    ,
    
        opponent: "Nick Kyrgyos",
        match_date: 1494557400000
    
  ]

我想提取每个玩家的所有比赛,并使用 Mongoose 按match_date 对它们进行排序,但我不知道如何。

你能帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

你可以试试下面的聚合

db.collection.aggregate([
   "$unwind": "$matches" ,
   "$sort":  "matches.match_date": 1 ,
   "$group": 
    "_id": "$_id",
    "matches":  "$push": "$matches" 
  ,
   "$limit": 20 ,
   "$project":  "matches": 1, "numberOfMatches":  "$size": "$matches"  
])

【讨论】:

我收到以下错误:Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting. Aborting operation. Pass allowDiskUse:true.allowDiskUse(true) 修复了它。我也想使用分页(limit()),但只有在排序成功完成之后。你知不知道怎么?谢谢! 您可以在$project 阶段之前使用$limit...更新了答案 有没有办法“不分组”结果?我想要所有网球运动员的所有网球比赛 我听不懂...你能用示例输出问一个新问题吗...我最好在新答案中解释一下

以上是关于如何用mongoose更新这个文档中的数组中的对象中的数组里的值?的主要内容,如果未能解决你的问题,请参考以下文章

更新对象数组中的元素在 Mongoose 中不起作用

Mongo - 如果子文档数组中的对象具有值,则添加字段

$addToSet 对象到 mongoose 中的数组 [重复]

使用 Mongoose 更新数组中的子文档

Mongoose - 更新数组中的每个子文档(node.js)

Mongoose - 更新数组中的每个子文档(node.js)