【问题标题】:Mongoose: Update dynamically generated collectionMongoose:更新动态生成的集合
【发布时间】:2020-07-22 07:53:47
【问题描述】:

我们有 node.js 项目并使用 mongoose 进行 mongodb 操作。

夜间作业运行并在数据库中动态创建一个名为“zonecountaggregate”的新集合。

当来自 UI 的数据发生某些变化时,我需要更新此集合。

我一直在模型和架构已经定义的情况下工作,只需使用下面的代码引用它来保存或更新数据..

const account = await Account.findById(req.params.id);
....
const updatedAccount = await account.save();

我的问题是,如何更新这个动态集合? 我首先检查是否存在具有该名称的集合,然后如果存在则根据 id 更新某些字段。

我现在正在这样做,但看不到结果。

const {
  ObjectId
} = require('mongoose').Types;
var mongoose = require('mongoose');
mongoose.connect(process.env.MONGODB_URI);
var connection = mongoose.connection;
var db = mongoose.connection;
mongoose.connect(process.env.MONGODB_URI);

const test =  await db.collection('zonecountaggregate').find({_id: ObjectId("5e8ec95181d6ef6f64b69b2c")});
      console.log(test)

我们正在使用“猫鼬”:“^5.7.8”

【问题讨论】:

    标签: mongodb mongoose mongoose-schema


    【解决方案1】:

    这是在找到集合后更新 mongoose 中的任何字段的方式: Model.where({ _id: id }).update({ $set: { title: 'words' }})。您必须使用架构设置要更新的字段。有关更多信息,请查看官方 Mongoose 文档。

    【讨论】:

    • 模型未在我项目的模型文件夹中定义。这个集合每晚都会自动生成
    • 如何找到集合和数据?
    • 如果这是在你的本地机器上,我建议你下载 MongoDb Compass ,在那里你可以看到你所有的收藏和数据库,首先至少尝试在你的收藏中保存一些数据。
    猜你喜欢
    • 2020-11-11
    • 2014-09-22
    • 1970-01-01
    • 2013-02-24
    • 2013-07-22
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多