2017-03-05 103 views
0

如果我向數據庫添加文檔(通過我的應用程序或通過數據庫管理工具RockMongo),我立即看到要添加到數據庫的文檔(如RockMongo所示),沒問題。但是,當我在相應的Mongoose模型上調用簡單的model.find()時,不會返回DB的最新增加。幾分鐘後,它們最終顯現出來。Mongoose find()需要幾分鐘才能返回最新文檔

它看起來像文件正在從某種不保持更新的緩存/緩衝區讀取。有沒有像我眺望的貓鼬那樣的東西?

我的後臺是這樣的:

var mongoose = require('mongoose'); 
require('./models/Locations'); 
mongoose.Promise = global.Promise; 
mongoose.connect(mongoUrl,{ config: { autoIndex: false } }); 
var Locations = mongoose.model('Locations'); 
[...] 
app.get('/locations', function(req, res, next) 
{ 
    Locations.find(function(err, results) 
    { 
     if(err){return res.status(500).json(err);} 
     res.json(results); 
    }); 
}); 

型號:

var mongoose = require('mongoose'); 

var LocationsSchema = new mongoose.Schema({ 
    name: String 
}); 

mongoose.model('Locations', LocationsSchema); 

如果我添加一個項目在DB手動位置,並指出我的瀏覽器/位置,我不「看不到新的項目,直到幾分鐘後...

+0

缺省情況下。你能分享你的堆棧/配置/代碼嗎? – kbariotis

+0

我有一個應用程序構建在MEAN上,有mongoldb v2.4.10,node v6,mongoose v4.6。我將用一些代碼編輯問題。奇怪的是,我的應用程序在我的機器上工作正常,但不是我設置的Gandi實例... – Edrosos

+1

MongoDB很舊。看看這裏,也許這是線索http://mongoosejs.com/docs/compatibility.html – kbariotis

回答

0

更改此:

Locations.find(function(err, results) 
{ 
    if(err){return res.status(500).json(err);} 
    res.json(results); 
}); 

要這樣:

Locations.find({},function(err, results) 
{ 
    if(err){return res.status(500).json(err);} 
    res.json(results); 
}); 
相關問題