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