私は、モバイルクライアントを同期するために、私のアプリのログキーパーとしてMongoDBを使用しています。マングース:入力されたフィールドを埋め込む
var UserArticle = new Schema({
date: { type: Number, default: Math.round((new Date()).getTime()/1000) }, //Timestamp!
user: [{type: Schema.ObjectId, ref: "User"}],
article: [{type: Schema.ObjectId, ref: "Article"}],
place: Number,
read: Number,
starred: Number,
source: String
});
mongoose.model("UserArticle",UserArticle);
var Log = new Schema({
user: [{type: Schema.ObjectId, ref: "User"}],
action: Number, // O => Insert, 1 => Update, 2 => Delete
uarticle: [{type: Schema.ObjectId, ref: "UserArticle"}],
timestamp: { type: Number, default: Math.round((new Date()).getTime()/1000) }
});
mongoose.model("Log",Log);
私はfollwingコードを使用するログretriveしたい:あなたが見ることができるように
var log = mongoose.model('Log');
log
.where("user", req.session.user)
.desc("timestamp")
.populate("uarticle")
.populate("uarticle.article")
.run(function (err, articles) {
if (err) {
console.log(err);
res.send(500);
return;
}
res.json(articles);
が、私はマングースを移入したい「とuarticle」私はNodeJSに設定し、このモデルを持っていますフィールドをLogコレクションから取得し、次にUserArticle( "uarticle")の "article"フィールドに値を設定します。
しかし、このコードを使用すると、Mongooseは、UserArticle Modelを使用して "uarticle"にデータを取り込みますが、uarticle内の記事フィールドは読み込みません。
Mongooseを使用してpopulate()を実行するか、別の処理を行う必要がありますか?
は、私が文書で確認したものから、私はあなたから聞くから、
私は参照が中に埋め込まれているのと同じ問題に遭遇しました配列 - > myList:[{mid:{type:Schema.ObjectId、 'ref': 'OtherModel'}、メタ:[String]}]。これは、私は.populate( 'myList.mid')を試してみると、次のエラーが発生します... TypeError:未定義のメソッド 'path'を呼び出すことができません – Greg