我的问题是,我在下面有一个集合,_id 被忽略了
{ "value" : -10, "r" : [ { "v" : 1 }, { "v" : 3 } ] }
{ "value" : 2, "r" : [ { "v" : 4 }, { "v" : 1 } ] }
{ "value" : -100, "r" : [ { "v" : 4 }, { "v" : 1 }, { "v" : 10 } ] }
{ "value" : -3, "r" : [ ] }
而我要按数组 r 的最后一个值来排序,也就是说,我想在下面得到一个结果,
{ "value" : -3, "r" : [ ] } # this one should be either the first one or the last one
{ "value" : 2, "r" : [ { "v" : 4 }, { "v" : 1 } ] }
{ "value" : -10, "r" : [ { "v" : 1 }, { "v" : 3 } ] }
{ "value" : -100, "r" : [ { "v" : 4 }, { "v" : 1 }, { "v" : 10 } ] }
我知道我可以按数组 r 的第一个值排序
db.my.find().sort({'r.0.v': 1})
但是如何通过最后一个值来做到这一点?
并且,如果使用下面的 mongoengine 模型
class V(EmbeddedDocument):
v = IntField()
class M(Document):
value = IntFiled
r = ListField(EmbeddedDocumentField(V))
我应该如何使用 mongoengine?IntField
也许其他领域,例如DateTimeField
,StringField
...
谢谢