当前位置: 首页 > 知识库问答 >
问题:

Mongoose在多维对象数组中添加项

慎建本
2023-03-14
const userSchema = new Schema({

  tokens:[{
    token: {
        type: String,
        requird: true
    }
  }],
  tradings: {
    buy: {
        data: {
            type: Array
        }
    },
    sell: {
        data: {
            type: Array
        }
    },
    total: {
        data: {
            type: Array
        }
    }
  }
})
"tradings": {
   "buy": {
      "data": [{ trade: 234234, time: 345345 }]
   },
   "sell": {
      "data": []
   },
   "total": {
      "data": []
   }
}
Users.findOneAndUpdate(
    { _id : req.body.id },
    {
        tradings : {
            $push: {
                buy : req.body.obj
            }
        }
    },
    {
        new: true
    },
    function(error, doc){
        if(error){
            res.status(500).json({
                error: error
            })
        }else{
            res.status(201).json({
                message: req.body.data.id
            })
        }
    }
)

共有1个答案

林涵映
2023-03-14

您的Tradings字段的结构如下:

tradings: {
  buy: {
    data: {
        type: Array
    }
  },
  ...
}

您希望在数据中推送项,而不是购买。另外,$push的形式是:

{ $push: { <field1>: <value1>, ... } }

所以您的更新应该是:

Users.findOneAndUpdate(
{ _id : req.body.id },
{
    $push: {"tradings.buy.data": req.body.obj}
},...
 类似资料:
  • 我的一个项目搞得一团糟。我必须创建一个对象数组。我制作了一个数组,但它只有一个字段“myMonths”,表示项目的时间长度。在我的主要方法中: 在我的课堂上,单独归档: 我应该再加两个字段,两个字符串。有没有一种方法可以将更多字段/属性添加到此数组中,并在1个索引下同时查看它们?例如,在[0]projectName、projectManager、myMonths ie(字符串、字符串、整数)。任何

  • 我试图让用户输入日期来存储它,但我似乎无法将其记录下来。 当我试图将创建的对象添加到数组时,问题就来了。 以下是另一个类,以供setDay,setMonth,setyear参考:public class OurDate{private int day;private int month;private int year;

  • 我想用相当复杂的方案更新文档。 我想用原子更新来做(而不是在内存中修改它,然后调用.save())。 }); ////////////////////////////////////////////////////////////// 我有事件id(_id)、会话(id)和需要添加/删除项到投票人数组。

  • 我一直在做一个关于类继承的练习 问题如下:有三种主要类型的文件, 一个类Zoo文件(包含主方法) 一个抽象类动物文件 和任何数量的特定动物(牛,马,无论什么),它们是派生的类,你猜对了,类动物。 我的问题存在于这里的add方法中。我在第一个if语句中不断得到一个空指针异常 以及第一次在main方法中调用add方法。很明显,这种情况有点不对劲,很可能是伴随它的else if情况。 对于我的生活,我无

  • 首先,大家好,看到这个话题的人。我必须在数组末尾添加一个对象。例如,在(public C C(int,int,int)方法中)我必须扩展数组“array2 ”,数组2有两个对象用于(A . B B1 = a1 . new B();),有一个对象为(A . B B2 = a1 . new B();).< br >如何添加对象?< br >非常感谢大家。下面的代码在测试类中

  • 问题内容: 假设采用以下架构,我尝试使用Mongoose保存一些GeoJSON数据 这就是我尝试保存文档的方式 但是,我在数据库中得到的是 看起来整个位置标签和数据都丢失了。这是定义架构的错误方法还是保存文档的错误方法? 问题答案: 当使用在嵌入式对象中命名的字段时,您需要使用一个对象来定义其类型,或者Mongoose认为您正在定义对象本身的类型。 因此,将您的架构定义更改为: