私が作成しているウェブサイトの別々の部分にいくつかのmongoデータベースがあります。これらのデータベースの 1 つはセッション用です。Connect Mongo を使用してセッションをデータベースに保存しています。ユーザー用に作成したモデルを参照する ObjectId をセッションに保存できないようです。しかし、セッションを読むと、オブジェクトではなく、保存した ObjectId を取得するだけです。私はすでにstringifyをfalseに変更しました。Connect Mongoでこれを行うことは可能ですか?
私はすでにスキーマを作成し、そのスキーマをセッション変数に保存して、参照したユーザー オブジェクトが返されるかどうかを確認しました。このコードを以下に含めました。
var mongoose = require('mongoose');
var DBsessions = require('../../setup/DBconnect.js').DBsessions;
var QuickChatRefScheme = mongoose.Schema({
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}
});
module.exports = DBsessions.model('QuickChatRef', QuickChatRefScheme);
そして、これを使用するために私は持っています:
request.session.allowedChatUser = new QuickChatRef({user:new mongoose.Types.ObjectId(toUser._id)});
wheretoUser._id
が提供され、既存の user _id フィールドです。
ユーザーを参照するにはセッションが必要なので、ノードがデータベースからセッションを照会すると、ユーザーオブジェクトも引き戻されます。