我有这类型的集合:PHP /蒙戈DB:如何通过特定的阵列排序属性
"File"
{
"_id" : { "$oid" : "4f730e3bb8be296910000180"}
, "Name" : "File1.jpg"
, "Folders" : [
{ "F_id" : { "$oid" : "4f72f503b8be296d78000166"} , "Ord" : 1}
, { "F_id" : { "$oid" : "4f730eedb8be296e78000180"} , "Ord" : 3}
]
}
{
"_id" : { "$oid" : "4f730e3ab8be296978000181"}
, "Name" : "File2.jpg"
, "Folders" : [
{ "F_id" : { "$oid" : "4f72f503b8be296d78000166"} , "Ord" : 2}
, { "F_id" : { "$oid" : "4f730eedb8be296e78000180"} , "Ord" : 2}
, { "F_id" : { "$oid" : "4f730eedb8be296e78000132"} , "Ord" : 1}
]
}
{
"_id" : { "$oid" : "4f730e38b8be296e78000182"}
, "Name" : "File3.jpg"
, "Folders" : [
{ "F_id" : { "$oid" : "4f72f503b8be296d78000166"} , "Ord" : 3}
, { "F_id" : { "$oid" : "4f730eedb8be296e78000180"} , "Ord" : 1}
]
}
“文件夹”可以包含很多元素,并体现在哪个文件夹“F_ID”的文件可用,并按照该文件夹中的“Ord”顺序发送。
然后,我想简单地以正确的顺序获取一个文件夹中的所有文件。
但是,当我做这样的事情:
File.find({ “Folders.F_id”:{ “$ OID”:4f72f503b8be296d78000166}})的.sort({ “文件夹$奥德。”:1} );
我无法获得我期望的正确订单!
任何想法??我应该使用Map reduce吗?怎么样 ??
谢谢!