Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每个$不在mongodb工作_Mongodb_Mongodb Query - Fatal编程技术网

每个$不在mongodb工作

每个$不在mongodb工作,mongodb,mongodb-query,Mongodb,Mongodb Query,我想使用update query将新数据添加到mongodb中字段的子元素中,每个字段使用$push和$EATHE,但它直接插入每个操作符的整个部分。请帮我修一下。我的问题如下 > db.Groups.insert({ "_id" : ObjectId("55b54aa4e2aa83f1f123a1a2"), "_creator" : ObjectId("55b2932cb57f47c0be6f071f"), "_messages" : ["hi"], "_inactive" : [ ],

我想使用update query将新数据添加到mongodb中字段的子元素中,每个字段使用$push和$EATHE,但它直接插入每个操作符的整个部分。请帮我修一下。我的问题如下

> db.Groups.insert({ "_id" : ObjectId("55b54aa4e2aa83f1f123a1a2"), "_creator" : ObjectId("55b2932cb57f47c0be6f071f"), "_messages" : ["hi"], "_inactive" : [ ], "_active" : [ Obje

> .Groups.update({ "_id" : ObjectId("55b54aa4e2aa83f1f123a1a2")},{$push: {_active : { $each: [ ObjectId("55b2932cb57f47c0be6f072f"), ObjectId("55b2932cb57f47c0be6f073f") ]}}});
运行这些查询后的结果

{ "__v" : 39, "_active" : [     ObjectId("55b2932cb57f47c0be6f071f"),   ObjectId("55b28b203a6b52e9b90e3cd4"),   {   "$each" : [     ObjectId("55b2932cb57f47c0be6f072f"),   ObjectId("55b2932cb57f47c0be6f073f") ] } ], "_creator" : ObjectId("55b2932cb57f47c0be6f071f"), "_id" : ObjectId("55b54aa4e2aa83f1f123a1a2"), "_inactive" : [ ], "_messages" : [ "hi" ] }
预期结果

{ "__v" : 39, "_active" : [     ObjectId("55b2932cb57f47c0be6f071f"),   ObjectId("55b28b203a6b52e9b90e3cd4"), ObjectId("55b2932cb57f47c0be6f072f"),     ObjectId("55b2932cb57f47c0be6f073f") ], "_creator" : ObjectId("55b2932cb57f47c0be6f071f"), "_id" : ObjectId("55b54aa4e2aa83f1f123a1a2"), "_inactive" : [ ], "_messages" : [ "hi" ] }

这里的MongoDB版本必须是非常旧的版本,现在确认为2.0.4。在2.2.x版本中,由于将
$each
解释为一个字段,并由于字段名中保留了
$
而拒绝该字段,因此这甚至会出错


如果您打算使用MongoDB 2.4,那么至少要使用它,否则会有,这现在被认为是不推荐的。2.4和2.6之间的唯一区别是,早于2.6,您需要将其与
$sort
修改器结合使用。

这是服务器上的哪个MongoDB版本?您至少需要MongoDB 2.6来支持这一点。而且,您似乎是从猫鼬而不是您声称的从外壳运行此功能。那么您使用的mongoose版本也是wat吗?哦,我使用的是Mongo2.0.4版本,您是对的,它在2.6+版本中工作。请把你的答案贴在下面。非常感谢。