From 7c3caf95d524d98c505a4b860037bb9afdc7f1a4 Mon Sep 17 00:00:00 2001 From: Maxence Harm Date: Wed, 31 Oct 2018 19:46:00 +0100 Subject: [PATCH 1/3] fix tests --- .../npm/mongoose_v4.x.x/flow_v0.50.x-/test_mongoose-v4.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/definitions/npm/mongoose_v4.x.x/flow_v0.50.x-/test_mongoose-v4.js b/definitions/npm/mongoose_v4.x.x/flow_v0.50.x-/test_mongoose-v4.js index 4c8b3e75c5..3b274f6853 100644 --- a/definitions/npm/mongoose_v4.x.x/flow_v0.50.x-/test_mongoose-v4.js +++ b/definitions/npm/mongoose_v4.x.x/flow_v0.50.x-/test_mongoose-v4.js @@ -2,7 +2,7 @@ import mongoose, { Schema } from "mongoose"; -export const AdminSchema = new Schema( +export const AdminSchema: Mongoose$Schema = new Schema( { _id: String, email: { @@ -112,7 +112,7 @@ const a2 = new Admin({ email: 123, token: "www" }); Admin.aggregate([ { $project : { email : 1 } } ]).allowDiskUse(true).exec() // -export const UserSchema = new Schema( +export const UserSchema: Mongoose$Schema = new Schema( { email: { type: String, From b2b662416f645fcfb819ed96e78c8b62040c89b4 Mon Sep 17 00:00:00 2001 From: Maxence Harm Date: Wed, 31 Oct 2018 19:46:34 +0100 Subject: [PATCH 2/3] correct populate return type --- .../flow_v0.50.x-/mongoose_v4.x.x.js | 2 +- .../flow_v0.50.x-/test_mongoose-v4.js | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/definitions/npm/mongoose_v4.x.x/flow_v0.50.x-/mongoose_v4.x.x.js b/definitions/npm/mongoose_v4.x.x/flow_v0.50.x-/mongoose_v4.x.x.js index f3ca1a35b7..0e331f4da3 100644 --- a/definitions/npm/mongoose_v4.x.x/flow_v0.50.x-/mongoose_v4.x.x.js +++ b/definitions/npm/mongoose_v4.x.x/flow_v0.50.x-/mongoose_v4.x.x.js @@ -305,7 +305,7 @@ declare class Mongoose$Document { markModified(path: string): void; modifiedPaths(): string[]; - populate(path?: string | Object, cb?: (err: Error, doc: this) => void): void; + populate(path?: string | Object, cb?: (err: Error, doc: this) => void): this; execPopulate(): Promise; populated(path: string): ?MongoId; toJSON(options?: ToObjectOpts): Object; diff --git a/definitions/npm/mongoose_v4.x.x/flow_v0.50.x-/test_mongoose-v4.js b/definitions/npm/mongoose_v4.x.x/flow_v0.50.x-/test_mongoose-v4.js index 3b274f6853..3c61e273c4 100644 --- a/definitions/npm/mongoose_v4.x.x/flow_v0.50.x-/test_mongoose-v4.js +++ b/definitions/npm/mongoose_v4.x.x/flow_v0.50.x-/test_mongoose-v4.js @@ -120,17 +120,29 @@ export const UserSchema: Mongoose$Schema = new Schema( set: (v: string) => v.toLowerCase().trim(), required: true }, - name: String + name: String, + admin: { + type: mongoose.Schema.Types.ObjectId, + ref: "Admin" + } }, { timestamps: { createdAt: "created_at", updatedAt: "updated_at" }, - collection: "admin" + collection: "user" } ); +const User = mongoose.model("User", UserSchema); + +User.findOne({}).exec().then( user => { + if (user) { + user.populate("admin").execPopulate(); + } +}) + mongoose.disconnect(err => console.log("err")); mongoose.disconnect().then(data => console.log(data)); From e42a1ca7f403c78f05da7fc123a9fffa118352ca Mon Sep 17 00:00:00 2001 From: Maxence Harm Date: Thu, 1 Nov 2018 09:08:24 +0100 Subject: [PATCH 3/3] same fix for v5 --- .../flow_v0.50.x-/mongoose_v5.x.x.js | 2 +- .../flow_v0.50.x-/test_mongoose-v5.js | 26 ++++++++++++------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/definitions/npm/mongoose_v5.x.x/flow_v0.50.x-/mongoose_v5.x.x.js b/definitions/npm/mongoose_v5.x.x/flow_v0.50.x-/mongoose_v5.x.x.js index 7563640c0a..1c9e470ae5 100644 --- a/definitions/npm/mongoose_v5.x.x/flow_v0.50.x-/mongoose_v5.x.x.js +++ b/definitions/npm/mongoose_v5.x.x/flow_v0.50.x-/mongoose_v5.x.x.js @@ -351,7 +351,7 @@ declare class Mongoose$Document { markModified(path: string): void; modifiedPaths(): string[]; - populate(path?: string | Object, cb?: (err: Error, doc: this) => void): void; + populate(path?: string | Object, cb?: (err: Error, doc: this) => void): this; execPopulate(): Promise; populated(path: string): ?MongoId; toJSON(options?: ToObjectOpts): Object; diff --git a/definitions/npm/mongoose_v5.x.x/flow_v0.50.x-/test_mongoose-v5.js b/definitions/npm/mongoose_v5.x.x/flow_v0.50.x-/test_mongoose-v5.js index 7a34957025..3c61e273c4 100644 --- a/definitions/npm/mongoose_v5.x.x/flow_v0.50.x-/test_mongoose-v5.js +++ b/definitions/npm/mongoose_v5.x.x/flow_v0.50.x-/test_mongoose-v5.js @@ -2,13 +2,7 @@ import mongoose, { Schema } from "mongoose"; -mongoose.connect('mongodb://host:port/dbname', error => { - console.log(error) -}) - -mongoose.connect('mongodb://host:port/dbname').then(data => (data: Mongoose$Connection)) - -export const AdminSchema = new Schema( +export const AdminSchema: Mongoose$Schema = new Schema( { _id: String, email: { @@ -118,7 +112,7 @@ const a2 = new Admin({ email: 123, token: "www" }); Admin.aggregate([ { $project : { email : 1 } } ]).allowDiskUse(true).exec() // -export const UserSchema = new Schema( +export const UserSchema: Mongoose$Schema = new Schema( { email: { type: String, @@ -126,17 +120,29 @@ export const UserSchema = new Schema( set: (v: string) => v.toLowerCase().trim(), required: true }, - name: String + name: String, + admin: { + type: mongoose.Schema.Types.ObjectId, + ref: "Admin" + } }, { timestamps: { createdAt: "created_at", updatedAt: "updated_at" }, - collection: "admin" + collection: "user" } ); +const User = mongoose.model("User", UserSchema); + +User.findOne({}).exec().then( user => { + if (user) { + user.populate("admin").execPopulate(); + } +}) + mongoose.disconnect(err => console.log("err")); mongoose.disconnect().then(data => console.log(data));