2017-06-15 39 views
0

我很困惑,很难做出不区分大小写的排序工作。所以我决定只加小写字母以外的第二个字段。 我使用C#驱动程序,并在我的对象模型中,我有像SortableString其中包含原始和小写字符串。问题是mongodb如何处理内部对象字段的排序?与根级字段进行排序相比,它有更差的性能吗?任何recomendations? (索引等)通过内部对象字段和其性能排序

更新:

公共对象结构

"_id" : ObjectId("57ebda72844c4c08d4ad2832"), 
"text" : { 
    "_l" : "abc", 
    "_o" : "Abc" 
} 

常用的查询结构用于分拣

db.Texts.find({}).sort({"text._l": 1}).skip(100).limit(50) 
+0

嗨ahydrax - 你能告诉我们你正在考虑的数据结构和索引,以及你打算针对它运行的典型查询吗?没有这个细节,就很难确定你提出的数据结构是否有用。 –

+0

@VinceBowdren我更新了问题示例 – ahydrax

回答

1

它会工作得很好。

MongoDB会很乐意让你这样做,并且会像查询顶层字段一样提高查询性能。

在你的情况,你可能会受益于指数,如这些:

{ "text._l": 1 } 
{ "someOtherField" : 1, "text._l": 1 } 

您所选择的指标取决于正是你查询将运行。

+0

感谢您的回答,我担心它可能会导致性能问题 – ahydrax

相关问题