首页 > 解决方案 > nodejs 从 mongodb 获得双倍记录

问题描述

var express = require('express');
var router = express.Router();
var Product = require('../models/products');

/* GET home page. */
router.get('/', function(req, res, next) {
  var products = Product.find();
  res.render('shops/index', { title: 'Express' ,Product:products});
});

module.exports = router;

我是 nodejs 和 mongodb 的新手。我在数据库中有 5 条记录,但上面的代码从数据库返回 15 条记录

这是实现的模型

var mongoose = require('mongoose');
var Schema = mongoose.Schema;


var schema = new Schema({
    imagePath:{type: String,required:true},
    title:{type: String,required:true},
    description:{type: String,required:true},
    price:{type: String,required:true},

});

module.exports = mongoose.model('Product',schema);

标签: node.jsmongodbexpressmongoose

解决方案


find 是一个异步操作,其结果在回调函数中提供。查询它看起来像这样:

Product.find({}, function(err, products) () {
    res.json(products);
});

但我不明白为什么你会得到 15 个结果......


推荐阅读