这是我的模式:
type User {
_id: ID!
username: String
email: String!
firstName: String
lastName: String
avatar: String
createdAt: Date!
updatedAt: Date!
}
type Tweet {
_id: ID!
text: String!
user: User!
favoriteCount: Int!
createdAt: Date!
updatedAt: Date!
}
这是我的
Tweet
import mongoose, { Schema } from 'mongoose';
const TweetSchema = new Schema({
text: {
type: String,
minLength: [5, 'Your tweet is too short.'],
maxLength: [144, 'Your tweet is too long.']
},
user: {
type: Schema.Types.ObjectId,
ref: 'User'
},
favoriteCount: {
type: Number,
default: 0
}
}, { timestamps: true });
export default mongoose.model('Tweet', TweetSchema);
import { graphqlExpress } from 'apollo-server-express';
import { makeExecutableSchema } from 'graphql-tools';
import typeDefs from '../graphql/schema';
import resolvers from '../graphql/resolvers';
const schema = makeExecutableSchema({
typeDefs,
resolvers
});
const app = express();
app.use(
'/graphql',
graphqlExpress(req => ({
schema
}))
);
我使用以下代码模拟一些用户并使用faker发布推特,如下所示:
https://pastebin.com/raw/kJ9m8KjR
当整个程序运行时,我可以看到mongodb中充满了与用户链接的虚拟推文,如下所示: