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