【发布时间】:2012-02-07 13:07:16
【问题描述】:
我有一个在 mongo db 数组中序列化的关联容器(具有 c++ 映射的语义)。在我的集合中,我检索包含我的密钥的数组。
db.qrs.find( { "u.i" : 111892 })
我想对我的“地图”的“价值”元素进行排序。如:
db.qrs.find( { "u.i" : 731612 }).sort( { "u.c" : -1} )
但是,这只是对文档中的数组进行排序,而不是对结果集中的每一行进行排序。排序行示例:
{ "_id" : ObjectId("4f2f9acea2b3adfce39ae395"), "i" : 11, "r" : 1,
"s" : ")n(kQ!$A=@%RPv-SB0dQXh7ME*%lw=!$@(VshFU1H6#b7r*wb()t3Ps!^xQ1rNr7j", "u" :
[ { "c" : 7, "i" : 29518, "p" : 0 }, { "c" : 1, "i" :
924577, "p" : 3 }, { "c" : 1, "i" : 731612, "p" : 1 } ] }
我希望位置运算符可能会起作用,可惜它没有达到我的预期,我的查询被表述为:
db.qrs.find( { "u.i" : 111892 }).sort( { "u.$.c" : -1} )
那么,我想要的查询是什么样的?
我能否以某种方式转置结果集以提升与我的谓词匹配的键值对成为结果集顶级文档结构的一部分?
【问题讨论】:
标签: mongodb data-structures database