最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Mongoose保存嵌套的对象数组

IT培训 admin 5浏览 0评论

Mongoose保存嵌套的对象数组

我已经创建了我的模型并可以通过手动列出它们来保存一组对象,但是这在生产中不起作用,因为我的数组并不总是相同的大小。

下面是我的代码示例。在stackRank字段下保存对象数组时遇到的问题。

如果有人有任何建议,那将是伟大的,节省生命!

猫鼬模型

const MySchema = mongoose.Schema({
  userId: {type: mongoose.Schema.Types.ObjectId, ref: 'User', require: true},
  startDate: {type: Date, require: true},
  endDate: {type: Date, require: false}, 
  length: {type: Number, require: true},
  inProgress: {type: Boolean, require: true, default: true}, 
  stackRank:[{
    appUsers: {type: mongoose.Schema.Types.ObjectId, ref: 'Users', require: true}
  }]
});

在Express中保存代码

const mySchema = new MySchema({  
      userId: req.body.userId,
      startDate: today,
      length: req.body.startLength,
      stackRank: [          //TODO this is the part I need to change
        {appUsers: Array[0]}, 
        {appUsers: Array[1]},
        {appUsers: Array[2]}
      ]
    });

    instantComp.save()
    .then((result) => {
      console.log('result from save', result)
    })
    .catch(err => console.log('error promise all', err))

期望的功能

我没有为嵌套在stackRank中的字段appUsers单独保存数组的每个值,而是希望能够一次保存整个数组,因为它的长度不会总是为3。它的长度几乎总是不同的,所以当我编写的代码适用于这个大小的数组时,它实际上对我来说无法正常工作。

我希望如何在Mongo 中保存数据的图片

回答如下:

您可以尝试对当前代码进行此修改

let stackRank = []; 
for(let elem of array) //array is your array variable, i suppose
    stackRank.push({appUsers: elem}); 

mySchema.stackRank = stackRank; 

Mongoose保存嵌套的对象数组

我已经创建了我的模型并可以通过手动列出它们来保存一组对象,但是这在生产中不起作用,因为我的数组并不总是相同的大小。

下面是我的代码示例。在stackRank字段下保存对象数组时遇到的问题。

如果有人有任何建议,那将是伟大的,节省生命!

猫鼬模型

const MySchema = mongoose.Schema({
  userId: {type: mongoose.Schema.Types.ObjectId, ref: 'User', require: true},
  startDate: {type: Date, require: true},
  endDate: {type: Date, require: false}, 
  length: {type: Number, require: true},
  inProgress: {type: Boolean, require: true, default: true}, 
  stackRank:[{
    appUsers: {type: mongoose.Schema.Types.ObjectId, ref: 'Users', require: true}
  }]
});

在Express中保存代码

const mySchema = new MySchema({  
      userId: req.body.userId,
      startDate: today,
      length: req.body.startLength,
      stackRank: [          //TODO this is the part I need to change
        {appUsers: Array[0]}, 
        {appUsers: Array[1]},
        {appUsers: Array[2]}
      ]
    });

    instantComp.save()
    .then((result) => {
      console.log('result from save', result)
    })
    .catch(err => console.log('error promise all', err))

期望的功能

我没有为嵌套在stackRank中的字段appUsers单独保存数组的每个值,而是希望能够一次保存整个数组,因为它的长度不会总是为3。它的长度几乎总是不同的,所以当我编写的代码适用于这个大小的数组时,它实际上对我来说无法正常工作。

我希望如何在Mongo 中保存数据的图片

回答如下:

您可以尝试对当前代码进行此修改

let stackRank = []; 
for(let elem of array) //array is your array variable, i suppose
    stackRank.push({appUsers: elem}); 

mySchema.stackRank = stackRank; 

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论