Javascript 在一对多嵌入式文档mongodb中追加条目

Javascript 在一对多嵌入式文档mongodb中追加条目,javascript,node.js,mongodb,nosql,Javascript,Node.js,Mongodb,Nosql,我是MongoDB的新手,遇到了以下用例: 假设我的mongodb文档如下所示: { _id: "joe", name: "Joe Bookreader", numbers: [ { mobile: 741134217, }, { home: 123452411 }

我是MongoDB的新手,遇到了以下用例:

假设我的mongodb文档如下所示:

{
    _id: "joe",
    name: "Joe Bookreader",
    numbers: [
                {
                    mobile: 741134217,
                },
                {
                    home: 123452411
                }
            ]
}
现在我需要执行两个操作:

  • 添加新号码
    {office:112342282}
  • 删除用户的家庭号码
  • 我相信我们可以在Mongo中做到这一点,但我没有得到任何语法,也没有在MongoDB文档中找到它

    另外,我正在使用Monk库进行此操作,Monk特定的语法将非常有帮助。但要不然也会对我有帮助

    您需要的是Mongo和运算符

    您应该能够通过执行以下操作来做到这一点:

    db.User.update({_id: 'joe'}, {$push: {numbers: {office: 112342282}}, $pull: {numbers: {home: 123452411}}});
    
    不幸的是,Mongo不允许您同时使用
    $push
    $pull
    操作符在同一字段上操作(请参阅)。因此,它确实需要:

    db.User.update({_id: 'joe'}, { $push: { numbers:  { office: 112342282}}})
    db.User.update({_id: 'joe'}, { $pull: { numbers: {home: 123452411}}})
    
    使用monk的风格:

    var users = db.get('users');
    users.update({_id: 'joe'}, { $push: { numbers:  { office: 112342282}}})
    users.update({_id: 'joe'}, { $pull: { numbers: {home: 123452411}}})