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

猫鼬推到数组

刘和昶
2023-03-14

我需要将一个数组中的对象推入数据库,但我得到了一个错误。我做错了什么?我发现这样一个话题,通过猫鼬将物品推入mongo数组却无法正确应用..............................................................

habalka.files.push({_id: "tata", destination: "Harry"});
    habalka.save((res) => {
      console.log(res)
    });

当我尝试这个代码时,我得到了这个答案

MongooseError:文档在保存前必须有_ID

{
 "_id": "78935e75-86c0-47c2-a76d-2b52a0a71e7c",
    "files": [
        {
            "_id": "67e848e5-7fb0-480b-a1d3-f3a09d1b57f7",
            "destination": "./uploads/78935e75-86c0-47c2-a76d-2b52a0a71e7c",
            "filename": "67e848e5-7fb0-480b-a1d3-f3a09d1b57f7.mp3",
            "path": "uploads\\78935e75-86c0-47c2-a76d-2b52a0a71e7c\\67e848e5-7fb0-480b-a1d3-f3a09d1b57f7.mp3",
            "folder": "78935e75-86c0-47c2-a76d-2b52a0a71e7c",
            "info": {
                "size": 12120000,
                "mimetype": "audio/mp3",
                "encoding": "7bit",
                "originalname": "Попрошайка Евгений Владимирович из ФАСП. Выпуск 10.mp3",
                "fieldname": "selectedFile"
            },
            "date": {
                "$date": "2019-05-23T01:07:27.122Z"
            }
        }
    ],
    "date": {
        "$date": "2019-05-23T01:07:27.123Z"
    },
    "__v": 0
}
const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const HabalkaSchema = new Schema({
  _id: {
    type: String
  },
  files: [
    {
      _id: {
        type: String
      },
      destination: {
        type: String
      },
      filename: {
        type: String
      },
      path: {
        type: String
      },
      folder: {
        type: String
      },
      info: {
        size: {
          type: Number
        },
        mimetype: {
          type: String
        },
        encoding: {
          type: String
        },
        originalname: {
          type: String
        },
        fieldname: {
          type: String
        },
      },
      date: {
        type: Date,
        default: Date.now
      }
    }
  ],
  date: {
    type: Date,
    default: Date.now
  }
});
module.exports = Habalka = mongoose.model('habalka', HabalkaSchema);
let Habalka = habalka.findOne({_id: "78935e75-86c0-47c2-a76d-2b52a0a71e7c"});
Habalka.files.push({destination: "Harry"});
Habalka.save();

共有1个答案

习高格
2023-03-14

我认为您的问题是在应该是文件的时候到达目的地

我会试着

habalka.update(
{_id: "78935e75-86c0-47c2-a76d-2b52a0a71e7c"},
{$push: { files: {destination: "Harry"} }
);
 类似资料:
  • 问题内容: 是否有人使用过nodejs模块“ deferred”和“ mongoose”?我试图让deferred.promisify方法可以在猫鼬模型的函数上工作,以便我可以轻松地将它们链接起来,但是会遇到一些麻烦。具体来说,我想对和函数进行赋值处理,以便可以通过ObjectID链接查找另一个文档引用的一个文档。 这就是我所拥有的:https : //gist.github.com/332182

  • 使用下面的代码,我尝试创建一个新的项模式并将其推入第一个集合对象。我使用findById函数传递要更新的集合对象的_id。找到带有我的id的集合后,我只需将一个项模式推入集合对象的items数组。我得到Res.Status(200),但我的items数组从未更新。还有人有这个问题吗?谢谢你的帮助。

  • 问题内容: 我一直在寻找答案,但我确信我迷失了正确的词来描述我的追求。 基本上,我有一个名为“ people”的mongodb集合,该集合的架构如下: 现在,我有一个非常基本的express应用程序,该应用程序连接到数据库并成功地使用一个空的friends数组创建了“ people”。 在应用程序的次要位置,有一个添加好友的表单。该表单接受firstName和lastName,然后包含名称字段的P

  • 问题内容: 假设以下3个模型: 当我查询汽车时,我可以填充零件: 猫鼬是否有办法在所有汽车的嵌套零件对象中填充otherIds。 我可能可以遍历每辆车并尝试填充: 问题是我必须使用一个像async这样的库来对每个对象进行填充调用,然后等到所有操作完成后再返回。 可以在不循环所有汽车的情况下做? 问题答案: 更新: 请参阅以获取在Mongoose 4中添加的更紧凑的版本。摘要如下: 猫鼬3及以下:

  • 问题内容: 在我正在处理的集合中,文档如下所示: 我写了这个Mongoose模式来访问它: 当我查询文档时,一切正常,控制台中显示的输出正确。但是当我尝试执行console.log(myDoc.stuff)时,得到了以下信息: 代替 我究竟做错了什么?谢谢您的帮助!! 问题答案: 免责声明:此回复的日期过早,2012年!这可能不是最准确的。 从猫鼬的文档。 http://mongoosejs.co

  • 我想在mongo数据库的数组中添加一个元素: 结果很完美: 更新:猫鼬模式: