如何将find().sort()应用于mongoDB中的多维数据
我对MongoDB完全陌生,在学习的过程中我真的很享受。但现在我在中间。实际上,我有如下数据:我想应用一些排序操作,比如按标记排序如何将find().sort()应用于mongoDB中的多维数据,mongodb,Mongodb,我对MongoDB完全陌生,在学习的过程中我真的很享受。但现在我在中间。实际上,我有如下数据:我想应用一些排序操作,比如按标记排序 { "_id": 1, "gender": "m", "score": [ { "marks": 86, "subject": "Eng", "grad": "A" }, { "marks": 76, "subject": "Computers", "grad
{
"_id": 1,
"gender": "m",
"score": [
{
"marks": 86,
"subject": "Eng",
"grad": "A"
},
{
"marks": 76,
"subject": "Computers",
"grad": "A"
}
],
"age": 18
},
{
"_id": 2,
"gender": "m",
"score": [
{
"marks": 96,
"subject": "Eng",
"grad": "A+"
},
{
"marks": 66,
"subject": "Computers",
"grad": "B"
}
],
"age": 18
}
db.collectionName.aggregate({"$unwind":"$score"},{"$sort":{"score.marks":-1}})
Hi在给定文档中,
score
数据是嵌套的,因此您应该使用下面的方法进行排序,以便您可以按标记排序
{
"_id": 1,
"gender": "m",
"score": [
{
"marks": 86,
"subject": "Eng",
"grad": "A"
},
{
"marks": 76,
"subject": "Computers",
"grad": "A"
}
],
"age": 18
},
{
"_id": 2,
"gender": "m",
"score": [
{
"marks": 96,
"subject": "Eng",
"grad": "A+"
},
{
"marks": 66,
"subject": "Computers",
"grad": "B"
}
],
"age": 18
}
db.collectionName.aggregate({"$unwind":"$score"},{"$sort":{"score.marks":-1}})
或
或作为chridam的参考
db.collectionName.find().sort({"score.marks": -1})
db.collectionName.find()._addSpecial( "$orderby", { "score.marks": -1 })
db.collectionName.find( { $query: {}, $orderby: { "score.marks": -1 } } )
如果您只想主题
和标记
使用mongo
如果有任何条件,则使用ex:
db.collectionName.aggregate({"$unwind":"$score"},{"$sort":{"score.marks":-1}},{"$match":{"score.subject":"Eng"}},
{"$project":{"marks":"$score.marks","subject":"$score.subject","_id":0}})
db.collection.find()。有关更多详细信息,请参阅。如果我只需要主题和标记,那么查询是什么?聚合对于this@Michael9聚合是一种方法,但我认为比chridamit的工作罚款更合适的方法,如果我只想返回分数和主题,我如何进行排序?我尝试了find()之前只有,但它正在返回,因为我在我的question@SettiMahesh如果您想了解更多信息,请访问mongodb官方网站并遵循文档说明或尝试以下方法