📅  最后修改于: 2023-12-03 15:36:14.313000             🧑  作者: Mango
在类型化的 MongoDB 模型中,删除一个数组中的元素可能会带来一些困惑,但 TypeScript 提供了有效的方法来处理它。在本指南中,我们将介绍从 MongoDB 中的注释数组中删除一个 comment 的步骤。
在 TypeScript 项目中连接 MongoDB 数据库并打开注释数组。
import mongoose from 'mongoose';
import { Comment } from './models/comment'; // 导入 MongoDB 模型
mongoose.connect('mongodb://localhost:27017/myapp', {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const connection = mongoose.connection;
connection.once('open', () => {
console.log('MongoDB database connection established successfully!');
});
const comments = await Comment.find();
使用 Model.update
方法在 MongoDB 注释数组中删除 comment。我们可以使用 $pull
操作符从数组中删除一个 comment。在 $pull
操作符之后,我们需要添加一个对象,该对象包含要从数组中删除的 comment,例如:
const removedComment = await Comment.update(
{ _id: commentId }, // 查询 comment 的 _id
{ $pull: { comments: { _id: commentToDeleteId } } } // 从 comments 数组中删除 comment
);
以上代码将删除 comments 数组中 _id
与 commentToDeleteId
匹配的 comment。如果成功删除 comment,将返回一个 WriteResult
对象。
import mongoose from 'mongoose';
import { Comment } from './models/comment';
mongoose.connect('mongodb://localhost:27017/myapp', {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const connection = mongoose.connection;
connection.once('open', () => {
console.log('MongoDB database connection established successfully!');
});
const comments = await Comment.find();
// 假设我们要删除 comments 数组中第一个 comment
const commentId = comments[0]._id;
const commentToDeleteId = comments[0].comments[0]._id;
// 从 MongoDB 中的注释数组中删除 comment
const removedComment = await Comment.update(
{ _id: commentId },
{ $pull: { comments: { _id: commentToDeleteId } } }
);
console.log('Comment removed successfully!');
以上代码从 MongoDB 中的注释数组中删除了一个 comment。