gpt4 book ai didi

javascript - Mongoose :排序

转载 作者:行者123 更新时间:2023-11-28 05:40:45 25 4
gpt4 key购买 nike

对集合中的以下文档进行排序的最佳方式是什么:

{"topic":"11.Topic","text":"a.Text"}
{"topic":"2.Topic","text":"a.Text"}
{"topic":"1.Topic","text":"a.Text"}

我正在使用以下内容

find.(topic:req.body.topic).(sort({topic:1})) 

但不起作用(因为字段是字符串而不是数字,所以我明白了):

{"topic":"1.Topic","text":"a.Text"},
{"topic":"11.Topic","text":"a.Text"},
{"topic":"2.Topic","text":"a.Text"}

但我想得到:

{"topic":"1.Topic","text":"a.Text"},
{"topic":"2.Topic","text":"a.Text"},
{"topic":"11.Topic","text":"a.Text"}

我读了另一篇文章here这将需要 Mongoose 所没有的复杂排序。那么也许这种架构没有真正的解决方案?

非常感谢您的帮助

最佳答案

我建议您将主题归档为类型:数字,并创建另一个字段topic_text

您的架构如下所示:

var documentSchema = new mongoose.Schema({

topic : Number,
topic_text : String,
text : String

});

普通文档看起来像这样:

{document1:[{"topic":11,"topic_text" : "Topic" ,"text":"a.Text"},
{"topic":2,"topic_text" : "Topic","text":"a.Text"},
{"topic":1,"topic_text" : "Topic","text":"a.Text"}]}

因此,您将能够使用 .sort({topic : 1}) ,并获得您想要的结果。使用 topic 值时,将 topic_text 附加到它。

find(topic:req.body.topic).sort({topic:1}).exec(function(err,result)
{
var topic = result[0].topic + result[0].topic_text;//use index i to extract the value from result array.
})

关于javascript - Mongoose :排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38940681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com