2015-01-04 48 views
2

我試過了所有我能想到的,但我仍然無法將任何數據插入到MongoDB數據庫中。 當我收到數據(tweets)時,我會記錄一切,檢查數據類型是否與我的模式中字段的類型相匹配,這似乎沒問題,但插入到我的數據庫中的數據只是一個空的mongodb文檔。無法使用mongoose將數據插入到mongoDB中的文檔的字段中,Node.js

我的架構:

var mongoose = require('mongoose'); 

var tweetSchema = new mongoose.Schema({ 
    userName: {type: String, required: true}, 
    imageUrl: {type: String}, 
    bannerUrl: {type: String}, 
    text: {type: String}, 
    hashTag: {type: String} 
}); 

module.Exports = tweetSchema; 

我的模型:

var mongoose = require("mongoose"); 
var tweetSchema = require("../schemas/tweet.js"); 

var Tweet = mongoose.model('Tweet',tweetSchema,"tweets"); 
module.exports = Tweet; 

我的應用程序的一部分,我試着將文件插入到我的MongoDB:

var Twitter = require('node-tweet-stream'); 
require("./data/connectDB.js"); 
var Tweet = require('./data/models/tweet'); 

t.on('tweet', function(twdata){ 
    var uName = twdata.user.screen_name.toString(); 
    var iUrl = twdata.user.profile_image_url; 
    var bUrl = twdata.user.profile_banner_url; 
    var txt = twdata.text; 
    var htag = "test"; 

    console.log("username: " + uName + " - " + typeof uName); 
    console.log("image url: " + iUrl + " - " + typeof iUrl); 
    console.log("banner url: " + bUrl + " - " + typeof bUrl); 
    console.log("text: " + txt + " - " + typeof txt); 
    console.log("hashtag: " + htag + " - " + typeof htag); 



    var newTweet = new Tweet({ 
     userName: uName, 
     imageUrl: iUrl, 
     bannerUrl: bUrl, 
     text: txt, 
     hashTag: htag 
    }); 
    console.log(newTweet); 

    newTweet.save(function(err, newTweet){ 
     if(err){ 
      console.log(err); 
     } 
     else{ 
      console.dir(newTweet); 
     } 

    }); 

    //console.log(twdata.id); 
}); 

日誌我正在接收數據類型和內容:

username: ZBBXXR - string 
image url: http://pbs.twimg.com/profile_images/550347979886845953/9aU5othN_normal.jpeg - string 
banner url: https://pbs.twimg.com/profile_banners/274821783/1418814026 - string 
text: RT @NamiZelmon: happy birthday yoseob oppa @all4b2uty hope you like this #HappyYSDay http://t.co/C6W3LFg5F5 - string 
hashtag: test - string 

我沒有得到任何錯誤,但插入我的數據庫中的文檔是以下(這只是一個空的MongoDB文檔):

{ __v: 0, _id: 54a9b1ba0114720c2711cbfc } 
+0

如果您嘗試僅插入一個必填字段,會發生什麼情況? – unobf

+0

你可以發佈'twdata'嗎? – Carpetfizz

回答

2

我無法相信我沒有看到這一。 在我的模式我寫

module.Exports = tweetSchema; 

,而它應該是「出口」非資本

module.exports = tweetSchema; 

因爲大寫錯字,稱需要時返回什麼(」 ../模式/鳴叫.js')放在./model/tweet.js中。 因此,傳入未定義到'./model/tweet.js'中的mongoose.model('Tweet',TweetSchema,「tweets」)並創建空的數據庫文檔。

相關問題