嘗試推送到嵌套陣列時,它不會使用以下代碼在我的資料庫中更新:
const obj = {
key: key,
user: user,
description: description,
date: Date.now(),
guildId: guildId,
};
const guild = await this.GuildModel.findOneAndUpdate(
{ guildId: guildId },
{ $push: { 'guildData.commandLogs': obj } },
);
我的架構:
const GuildSchema = {
guildId: { type: String },
guildData: {
commandLogs: [CommandLogsSchema],
},
知道為什么我的資料庫沒有更新嗎?
uj5u.com熱心網友回復:
我認為您的模型中可能有一些拼寫錯誤:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const GuildSchema = new Schema({ guildId: { type: String },
guildData: {
commandLogs: [CommandLogsSchema], })
在您的控制器中,您傳遞的過濾條件不清楚,您使用的是哪個 guildId?同樣,當您呼叫 guildData.commandLogs 欄位來更新它時,您缺少括號
const filter = { guildId: heretheactualId };
const update = { { $push: { commandLogs: obj} }};
const guild = await this.GuildModel.findOneAndUpdate(
filter,
update,
);
這不會解決您的問題,因為我不知道您遇到什么樣的錯誤或您的資料庫模型,但這些提示已經可以提供幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/475997.html
標籤:javascript 节点.js 猫鼬
下一篇:明確告訴打字稿一個變數不為空
