我是MongoDB的新手,我想问一下如何为元素创建一个新字段,该字段代表该元素中另一个字段的大小。例如: - 我也有这样类似的元素:添加新字段,这是文档的另一个字段的大小
{
"_id" : ObjectId("57e1ffcb94d9ae534869c6cd"),
"url" : "http://www.nytimes.com",
"verticals" : [ 1, 2, 3, 4, 5, 12 ]
}
我要添加新的领域说“numadx”,这是“垂直”数组的大小,在这种情况下,它是6,结果可是:
{
"_id" : ObjectId("57e1ffcb94d9ae534869c6cd"),
"url" : "http://www.nytimes.com",
"verticals" : [ 1, 2, 3, 4, 5, 12 ]
"numadx" : 6
}
我在终端使用命令:
db.test.update({},{$set:{numadx:{$size: "$verticals"}}},{multi:true})
但它返回错误:
"errmsg" : "The dollar ($) prefixed field '$size' in 'numadx.$size' is not valid for storage."
有人可以帮我:D?我这样做是为了根据numadx字段对这个集合中的元素进行排序,这有助于我最少了解这些元素在集合中的最大垂直值。
非常感谢。
哦,谢谢你,它工作顺利。哦,我已经看到,我们不能在update()命令xD中使用$ size,非常感谢。 – Blurie
不要这样做。这对性能非常不利,并可能导致竞争状况。 – styvane
性能非常差...... – c24b