0
ネストされたJSONをmongoose文書とサブ文書に変換しようとしています。私はウェブをたくさん検索していて、役に立たなかった。JSONをMongoose文書に変換する(サブ文書オブジェクトと共に)
は、runkitリンク:ここhttps://runkit.com/codesnooker/5a391097232f800012605983
が私のコードです:
var mongoose = require('mongoose');
var Schema = mongoose.Schema
const FbProfileSchema = new Schema({
fb_id: {
type: String,
required: true,
index: {
unique: true
}
},
first_name: String,
last_name: String,
}, {
toJSON: {
transform: function (doc, ret) {
var key = ret._id.toHexString();
delete ret._id;
ret._id = key;
}
}
});
const UserModel = new Schema({
email: {
type: String,
required: true,
index: {
unique: true
}
},
fbProfile: {
type: Schema.ObjectId,
ref: FbProfileSchema
},
});
var FbProfile = mongoose.model('FbProfile', FbProfileSchema);
var User = mongoose.model('User', UserModel);
var json = "{\"fbProfile\":{\"_id\":\"5a38f1aff8920ebf2b098f40\",\"last_name\":\"My Last Name\",\"first_name\":\"My First Name\",\"fb_id\":\"temp_fb_id\",\"__v\":0},\"email\":\"[email protected]\",\"__v\":0,\"_id\":\"5a38f1aff8920ebf2b098f41\"}";
var userJSON = JSON.parse(json);
var user = new User(userJSON);
をしかし、私はそのようfbProfileも投入されているしたいと思います私はプロジェクトでそれを使用するときにdbを押す必要はありません。どのようにそうするのか?
mongoクエリを使用すると簡単です。私はそれを使用したくない。私はRAMに格納されている既存のJSONから変換したいです。 – codesnooker
最初に、あなた自身の啓蒙のために、** JSON **は文字列でありオブジェクトではないので、** J ** ava ** S ** cript ** O ** bject ** N ** otationの略です。あなたが持っているものは、** POJO **または** P ** Lain ** O ** ld ** J ** avascript ** O ** bjectと口語的に呼ばれます。それらは違う。 :)あなたの例では、そのオブジェクトの唯一のデータはアクセスしたい 'fbProfile'のIDです。だから、あなたが既にメモリにそれを持っていなければ、あなたはそれをDBから一方向に取り出す必要があります。すでにメモリに格納されている場合は、このオブジェクトにマージして同じ出力を作成することができます。 –
私はすでにfbProfileデータをメモリに持っています。それを右のMongoose文書に変換したい – codesnooker