假设我有一些文件。为了简化起见,假设所有这些文档只有两个字段,名称和ID,如下所示。
我想获取“ id”值最大的文档。我可以将.find({})与某些参数一起使用吗?如果是这样,我就找不到哪个参数可以找到某个字段的最大值。
<meta http-equiv="X-UA-Compatible" content="IE=8">
答案 0 :(得分:1)
let documents = [
{
name: "name1",
id: 1
},
{
name: "name2",
id: 2
},
{
name: "name1",
id: 3
},
{
name: "name1",
id: 0
}
];
let max = documents.sort( (a, b) => a.id > b.id ? -1 : 1)[0]
console.log( max );
怎么样
let maxIdDocument = documents.sort( (a, b) => a.id > b.id ? 1 : -1)[0]
答案 1 :(得分:1)
首先,以降序排列,然后得到第一个:
const arr = [{
name: "name1",
id: 1
},
{
name: "name2",
id: 2
},
{
name: "name1",
id: 3
},
{
name: "name1",
id: 0
}
];
const [greatest] = arr.sort(({ id: a }, { id: b }) => b - a);
console.log(greatest);
答案 2 :(得分:1)
您可以对该数组进行排序,并使用函数pop
获得具有最大id
的对象。
arr.slice() // This is to avoid a mutation on the original array.
let arr = [ { name: "name1", id: 1 }, { name: "name2", id: 2 }, { name: "name1", id: 3 } , { name: "name1", id: 0 } ],
greatest = arr.slice().sort(({id: a}, {id: b}) => a - b).pop();
console.log(greatest);
.as-console-wrapper { min-height: 100%; }