当前位置: 首页 > 面试题库 >

猫鼬集合中的随机文件

黄博艺
2023-03-14
问题内容

我想创建一个Schema.statics.random从集合中获取随机元素的函数。我知道有一个本机MongoDB驱动程序的示例,但是我无法在Mongoose中运行它。


问题答案:

我在GitHub Gist中找到了此Mongoose
Schema静态函数,该函数应该可以实现您所追求的。它计算集合中文档的数量,然后在跳过随机数量后返回一个文档。

QuoteSchema.statics.random = function(callback) {
  this.count(function(err, count) {
    if (err) {
      return callback(err);
    }
    var rand = Math.floor(Math.random() * count);
    this.findOne().skip(rand).exec(callback);
  }.bind(this));
};

资料来源:https :
//gist.github.com/3453567

注意: 我对代码进行了一些修改,以使其更具可读性。



 类似资料:
  • 问题内容: 是否有一种Java集合,我的提取顺序是随机的?例如,我将整数1、2、3放入集合中,当我尝试打印它们时,所有结果都可能是“ 1 2 3”,“ 3 2 1”或“ 1 3 2”? 问题答案: 如果只需要随机序列,可以使用Collections.shuffle

  • 问题内容: 我需要使用猫鼬插入一些数据,但是集合的名称由用户在插入时提供,因此我首先必须检查集合是否存在。 我知道如何检查集合是否存在的方式是通过查询集合。我可以看到3种可行的方法。 找到一种使用猫鼬查询的方法(也许定义一个与数据库中的模式匹配的模式)。 从猫鼬获取一些底层的node-mongodb-native对象并手动执行查询。无论如何,这是我想学习的方法。 使用node-mongodb-na

  • 问题内容: 我在子文档的Mongoose中尝试执行findOne查询,但运气不佳… 我的架构如下所示: 我只需要从我使用此查询的文档中查找用户的电子邮件 任何帮助,将不胜感激! 问题答案: 您缺少对象的级别,因此您的代码需要更改为以下内容:

  • 问题内容: 我正在使用mongoose(在节点上),并且尝试通过使用Mongoose中间件在保存时向模型添加一些其他字段。 我正在考虑要添加lastmodifiedsince-date的常用情况。但是,我也想自动添加完成保存的用户的名称/配置文件链接。 我使用的护照- http://passportjs.org/这导致req.user存在, - 当然是在HTTP请求的。 谢谢 编辑 在调用嵌入式实

  • 问题内容: 对于我的应用程序而言,至关重要的是能够从Firebase的集合中随机选择多个文档。 由于Firebase(我知道)没有内置本机函数来实现执行此操作的查询,因此我的第一个想法是使用查询游标选择随机的起始索引和终止索引,前提是我拥有​​其中的文档数集合。 这种方法行之有效,但只能以有限的方式进行,因为每次每次文档都会与其相邻文档一起依次送达。但是,如果我能够通过其父集合中的索引选择一个文档

  • 我想知道mongoose是否有一些方法可以通过id集更新多个文档。例如: 我想知道的是,如果猫鼬能做这样的事情: 其中,ids是一个id数组,如['id1','id2','id3']-示例数组。对于find,同样的问题。