2013-02-27 85 views
0

这是MongoDB中MongoDB的错误,当我尝试findandmodify

{ code:'ACBD5588', 
    email:'[email protected]', 
    object{ 
     array_doc:[//many documents with this structure 
     { 
      code_doc:'ANCB7894', 
      info_doc:'....', 
      //etc 
     } 
     ], 
     counting:45, 
    } 
} 

我尝试删除阵列内的文件结构,该文件哈斯独有code_array所以数组中有许多文件,具有独特的code_array,我想删除阵列

db.collection('database').findAndModify(
     { 
      'code':code, 
      'email':email, 
     },[],{$pull:{'object.array_doc':{'code_doc':code_doc}}},function(err,resultado) 
     { 

里面的文档,但操作给了我这个错误

uncaught exception: findAndModifyFailed failed: { "errmsg" : 
"need remove or update", "ok" : 0 } 
+2

请提供一个样例文档,您希望这个文档能够成功 - 从文章中不清楚模式是什么。 – 2013-02-27 12:27:02

+0

每个文档都有一个名为'object'的文档数组,并且我必须在文档内拉和推文件 – andrescabana86 2013-02-27 21:36:50

+1

您列出的文档不是合法的JSON。您是否错误地在某些字段上添加了{}?另外,我没有看到名为code_array的字段,但我确实看到了code_doc - 在查询中是否有拼写错误? – 2013-02-28 00:02:20

回答

0

您使用的是哪个版本的MongoDB?在最新版本中,MongoDB希望在findAndModify命令中明确提到“update”或“remove”。请改用下面的查询。

db.collectionName.findAndModify({ 
    query : { 
    'code':code, 
    'email':email 
    }, 
    update: { 
    $pull : {'object.array_doc':{'code_doc':code_doc} } 
    } 
}) 
+0

不适用于我,同样的错误 – Antoine 2016-03-27 21:35:57