0
那麼,爲什麼是對象的變量在調試器 爲什麼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`:
獲得ID說'_id。還有一個小箭頭來「展開」,這將向您顯示價值。就像任何JavaScript對象一樣。 'console.log()'基本上調用'.toString()'原型並且「串化」對象內容。這就是爲什麼一個人直接顯示價值,另一個需要你「展開」對象以檢查價值。 –
@NeilLunn如果我花費箭頭,甚至沒有接近控制檯中顯示的'_id' – Emilio
@Emilio那麼擴展它時會顯示什麼?但是,是的,mongo對象id是[相當不可思議的](https://stackoverflow.com/questions/13104690/nodejs-mongodb-object-id-to-string) – Bergi