首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用回环从MongoDB中获取随机对象

使用回环从MongoDB中获取随机对象
EN

Stack Overflow用户
提问于 2018-04-05 22:41:41
回答 1查看 316关注 0票数 0

我已经在网上搜索了一个很好的答案,我可以从MongoDB获得多个随机对象。

我之所以寻找一种显示随机数据的好方法,是因为有一个像“这本书/推荐书中有趣的”这样的模块,它随机显示4-5本书。

希望你们能把我带到一个很好的方向,如何最好地解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-08 15:22:11

要使用Loopback从MongoDB获取一个随机对象,您需要创建一个自定义端点(在model.js文件中),如下所示:

代码语言:javascript
运行
复制
Model.random = function(cb){
    // this next line is what connects you to MongoDB
    Model.getDataSource().connector.connect(function(err, db) {
      var collection = db.collection('YOURCOLLECTIONNAMEHERE');
      //the below is MongoDB syntax, it basically pulls a 
      //random sample of size 1 from your collection
      collection.aggregate([
        { $sample: { size: 1 } }
      ], function(err, data) {
        if (err) return cb(err);
        return cb(null, data);
      });
    });
}

将“模型”替换为您的模型名称。注意:它需要大写!如果您不知道您的集合名称,如果Loopback创建了它,它通常与您的模型名称相同(而不是大写的)。

若要使此端点显示在资源管理器中,请将其添加到model.js文件中:

代码语言:javascript
运行
复制
Model.remoteMethod(
    'random', {
        http: {
            path: '/random',
            verb: 'get'
        },
        description: 'Gets one random thing',
        returns: {
            arg: 'randomThings',
            type: 'json'
        }
    });

我在这个示例应用程序中有一个这个端点的示例:危险蒙哥-API

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49682602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档