2017-07-31 59 views
0

那麼,爲什麼是對象的變量在調試器 debugger picture爲什麼console.log()和調試器中的對象值不同?

和控制檯日誌有什麼不同?我在詢問特別是關於_id這個看起來非常不同的變量!

在調試器中,我找不到這部分:"597e874b52fba6324c9ac192"

[ { _id: 597e874b52fba6324c9ac192, 
title: 'x', 
author: 'z', 
body: 'y', 
date: 2017-07-31T01:26:35.533Z, 
comments: [], 
__v: 0 }, 
{ _id: 597e87660726ab322c303a8e, 
title: 'x', 
author: 'z', 
body: 'y', 
date: 2017-07-31T01:27:02.266Z, 
comments: [], 
__v: 0 }, 
{ _id: 597e8773c45264303c3fcf0b, 
title: 'x', 
... 

這裏是節點JS代碼我使用:

function test() { 

var mongoose = require('mongoose'); 
mongoose.connect("mongodb://localhost:27017/test"); 
var Schema = mongoose.Schema; 

var blogSchema = new Schema({ 
    title: String, 
    author: String, 
    body: String, 
    comments: [{body: String, date: Date}], 
    date: {type: Date, default: Date.now}, 
    hidden: Boolean, 
    meta: { 
     votes: Number, 
     favs: Number 
    } 
}); 

var Blog = mongoose.model('Blog', blogSchema); 




    Blog.create({title: 'x', author: "z", body: "y"}, function (err, small) 
{ 
     if (err) return handleError(err); 
     // saved! 
    }); 
    var weirdResults; 
    Blog.aggregate([ 
     {$match: {author: {$exists: true}}} 
    ], function (err, results) { 
     weirdResults = results; 
     if (err) return next(err); 
     console.log(weirdResults); 
    }); 

} 

test(); 

謝謝大家!在調試器的輸出始終ObjectID`:

+2

獲得ID說'_id。還有一個小箭頭來「展開」,這將向您顯示價值。就像任何JavaScript對象一樣。 'console.log()'基本上調用'.toString()'原型並且「串化」對象內容。這就是爲什麼一個人直接顯示價值,另一個需要你「展開」對象以檢查價值。 –

+0

@NeilLunn如果我花費箭頭,甚至沒有接近控制檯中顯示的'_id' – Emilio

+1

@Emilio那麼擴展它時會顯示什麼?但是,是的,mongo對象id是[相當不可思議的](https://stackoverflow.com/questions/13104690/nodejs-mongodb-object-id-to-string) – Bergi

回答

0

您可以通過使用_id.toString();

相關問題