我有一个用户的模型,这个用户也可以是一个司机,这个司机有一个汽车数组。我想从司机的所有汽车中删除一辆特定的汽车,但是我的查询删除了所有的汽车。
以下是架构:
const UserSchema = new mongoose.Schema({
name: {
type: String,
},
driverData: {
ExperienceLevel: {
type: String,
},
rides: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "ride.model",
},
],
cars: [
{
id: {
type: mongoose.Schema.Types.ObjectId,
},
licensePlateNumber: {
type: String,
},
},
],
},
});
我用代码按身份证拉车。
user = await User.findByIdAndUpdate(
{ _id: userId },
{ driverData: { cars: { $pull: { id: carId } } } }
);
在进行此查询后,只留下一个汽车对象和一个汽车id,所有其他数据都被删除。如何只删除一辆汽车。
1条答案
按热度按时间lvmkulzt1#
您的语法不正确。请尝试:
user = await User.findByIdAndUpdate( { _id: userId }, { $pull: { driverData: { cars: { $elemMatch: { id: carId } } } } );