gpt4 book ai didi

javascript - Mongoose ,从子文档中提取

转载 作者:行者123 更新时间:2023-11-30 08:01:45 24 4
gpt4 key购买 nike

这是我的文档:

{ 
password: '87654321',
title: 'Organization A',
members:
[ { tier: 1,
joinedDate: Sun May 12 2013 00:00:00 GMT+0200 (CEST),
user: 543fc462ed385e5e77a98d56
},
{ tier: 2,
joinedDate: Sat May 11 2013 00:00:00 GMT+0200 (CEST),
user: 543fc462ed385e5e77a98d57
},
{ tier: 3,
joinedDate: Fri May 10 2013 00:00:00 GMT+0200 (CEST),
user: 543fc462ed385e5e77a98d58
}
]
}

我想编写一个查询来提取具有给定用户 _.id 的成员

pull 命令可能是我应该使用的命令

http://mongoosejs.com/docs/api.html#types_array_MongooseArray-pull

mongoose.model('organization').findOne({_id:user.organization}, function(err, org){
org.members.pull({'user._id':user._id});
org.save();
})

它不起作用。我做错了什么?

更新

我的模式:

var organizationSchema = new Schema({
title: String,
password: { type: String, required: true, index: { unique: true } },
members: [
{
tier: { type: Number, required: true, min:1, max:4},
joinedDate: Date,
user:{
type: Schema.ObjectId,
ref: 'user',
required: true,
unique:true
}
}
]
});

最佳答案

MongooseArray#pull 方法似乎只有在您的元素具有 _id 属性时才有效。

我发现直接调用 update 可以更容易避免这些意外:

mongoose.model('organization').update(
{_id: user.organization},
{$pull: {members: {user: user._id}}},
function(err, numAffected) { ... }
);

关于javascript - Mongoose ,从子文档中提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26405798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com