MaxSter
@MaxSter
Software engineer

Почему не работает findRandom() в mongoose для node.js?

Описание схемы:
var mongoose = require("mongoose");
var random = require('mongoose-random');

var productSchema = new mongoose.Schema(
    {
        Name: String,
        Description: String,
        Price: Number,
        Category:  String
    },
    {
        collection: 'sportsStore'
    }
)
productSchema.plugin(random, {path: 'r'});

var products = mongoose.model('sportsStore', productSchema);
module.exports = products;

Место, где вызывается findRandom()
getRandomProducts: function (count) {
        products.findRandom().limit(count).exec(function(error, result) {
            console.log(result);
        })

В консоль получаем [].
В коллекции документы присуствуют, простой find() работает. Где проблема? Подскажите, будьте добры.
  • Вопрос задан
  • 2587 просмотров
Решения вопроса 1
dizballanze
@dizballanze
Software developer at Yandex
Этот плагин добавляет в модель поле, которое затем используется для сортировки, соответственно, если у вас есть документы в коллекции, добавленные не через эту модель (с подключенным плагином), нужно добавить поля в существующие документы:

// if you have an existing collection, it must first by synced.
// this will add random data for the `path` key for each doc.
Song.syncRandom(function (err, result) {
  console.log(result.updated);
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы