Mongodb 流星$从阵列中移除

Mongodb 流星$从阵列中移除,mongodb,meteor,Mongodb,Meteor,我的数据库中有以下对象: { "_id": "fTgR2YtHiZBzzqF6J", "following": [ { "user": { "_id": "S4dLHRJiuHoyAp26q", "fb": { "id": "100006681067911", "name": "Helen Amff

我的数据库中有以下对象:

{
    "_id": "fTgR2YtHiZBzzqF6J",
    "following": [
        {
            "user": {
                "_id": "S4dLHRJiuHoyAp26q",
                "fb": {
                    "id": "100006681067911",
                    "name": "Helen Amffhajfgiaa Laubergskymanwitzescusonsteinsen"
                }
            },
            "date": "2013-10-01T17:25:50.305Z"
        },
        {
            "user": {
                "_id": "MAyxz4Yk5F9vh9RRy",
                "fb": {
                    "id": "100006719587007",
                    "name": "Mary Amfgaiehgkg Smithman"
                }
            },
            "date": "2013-10-11T10:47:58.898Z"
        }
    ]
}
现在我要删除

{
   "user": {
      "_id": "MAyxz4Yk5F9vh9RRy",
      "fb": {
          "id": "100006719587007",
          "name": "Mary Amfgaiehgkg Smithman"
      }
    },
    "date": "2013-10-11T10:47:58.898Z"
}
数组中名为“following”的子文档

我要执行此操作的查询如下所示:

 Collection.update({"_id":"fTgR2YtHiZBzzqF6J"},
 {
    "$pull": {
        "following": {
             "user": {
                 "_id": "MAyxz4Yk5F9vh9RRy"
             }
         }
     }
 });
但是什么也没发生


有人能指出我的错误吗?

问题与我的完全相同。如果您正好有一个
“用户”
,那么您的查询通常是正确的,并且仅适用于这种情况,但是对于多个用户,您必须重新设计您的收藏问题与此完全相同。您的查询通常是正确的,如果您正好有1个
“用户”
,则仅适用于这种情况,但对于多个用户,您必须重新设计您的收藏我的问题是:我必须$pull整个对象:

 Collection.update({"_id":"fTgR2YtHiZBzzqF6J"},
 {
    "$pull": {
        "following": {
            "user": {
                "_id": "MAyxz4Yk5F9vh9RRy",
                "fb": {
                    "id": "100006719587007",
                    "name": "Mary Amfgaiehgkg Smithman"
                }
            },
            "date": "2013-10-11T10:47:58.898Z"
        }
         }
     }
 });
你可以称之为:

Collection.update({"_id":"fTgR2YtHiZBzzqF6J"},
 {
    "$pull": {
        "following": {
             "user": {
                 "_id": "MAyxz4Yk5F9vh9RRy"
             }
         }
     }
 });

我的问题是:我必须拉动整个物体:

 Collection.update({"_id":"fTgR2YtHiZBzzqF6J"},
 {
    "$pull": {
        "following": {
            "user": {
                "_id": "MAyxz4Yk5F9vh9RRy",
                "fb": {
                    "id": "100006719587007",
                    "name": "Mary Amfgaiehgkg Smithman"
                }
            },
            "date": "2013-10-11T10:47:58.898Z"
        }
         }
     }
 });
你可以称之为:

Collection.update({"_id":"fTgR2YtHiZBzzqF6J"},
 {
    "$pull": {
        "following": {
             "user": {
                 "_id": "MAyxz4Yk5F9vh9RRy"
             }
         }
     }
 });

您也可以尝试这个答案(),我认为它更适合,代码更少。

您也可以尝试这个答案(),我认为它更适合,代码更少。

嘿,谢谢您的输入。事实上,我发现我有一个不同的错误,因为我在mongo中没有得到这个概念(我认为这很糟糕)。我会尽快回答我自己的问题。基本上:我不能只匹配用户的{u id,但我必须匹配包含{u id,fb{id,name}}的数组中的整个对象,只需通过这样的
\u id
查找,您需要指定完整路径:
col.find({“following.user.{u id:”MAyxz4Yk5F9vh9RRy)
-但是请注意
find
返回的不是字典条目!嘿,谢谢你的意见。事实上,我发现我有一个不同的错误,因为我在mongo中没有得到这个概念(我认为这很糟糕)。我会尽快回答我自己的问题。基本上:我不能只匹配用户的{u id,但我必须匹配包含{u id,fb{id,name}}的数组中的整个对象,只需通过这样的
\u id
查找,您需要指定完整路径:
col.find({“following.user.{u id:”MAyxz4Yk5F9vh9RRy)
-但是请注意
find
返回的不是字典条目!谢谢你看这个。我的代码这么长的唯一原因是,我写了一个示例,以便其他用户能够理解其内部结构。明白了,这两个有效的信息来源,对我来说都是同样好的。感谢您查看此内容。我的代码之所以这么长,唯一的原因是我写了一个例子,这样其他用户就可以理解里面的内容了。