【发布时间】:2014-04-02 04:44:26
【问题描述】:
我得到了这种文件
{
"_id" : "5339be1d9a703ab8708b45675339bed39aac7",
"description" : "data",
"name" : "data",
"members" : [
{
"user" : {
"$ref" : "users",
"$id" : ObjectId("5339be1d9a703ab8708b4567"),
"$db" : "someDb"
},
"type" : "Principal"
},
{
"user" : {
"$ref" : "users",
"$id" : ObjectId("5339c0c59a703a5d1f8b4569"),
"$db" : "someDb"
},
"type" : "Regular"
}
],
"owner" : "5339be1d9a703ab8708b4567",
}
我正在尝试从数组成员中提取一个元素,通过用户对象中的 $id 找到它。
我正在使用 Mongoose ODM。
这是我的功能:
> var conditions = {"_id" : data.guildId},
> update =
> {
> $pull :
> {
> 'members.user.$id' : new mongoose.Types.ObjectId(data.userId)
> }
> };
> var options = {upsert:false};
>
> Guild.update(conditions, update, options, leaveRoom);
我的node js服务器或mongo日志文件中没有报错,但文档不受影响。
【问题讨论】:
-
这是什么版本? mongoose 不支持 DBRefs,但您的文档显示 DBRef 语法。
-
猫鼬-> 3.8.8。但我不需要更新 ref,只需从该数组中删除一个元素
-
看我的回答 - 你的语法有点不对。
标签: javascript node.js mongodb mongoose pull