0
import * as mongoose from 'mongoose';
mongoose.connect('mongodb://localhost:27017/TestThis');
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', async() => {
const userRoles = new mongoose.Schema({
roleName: String,
user: {type: mongoose.Schema.Types.ObjectId, ref: 'User'}
});
const UserRoleModel = mongoose.model('UserRole', userRoles, 'UserRole');
const userSchema = new mongoose.Schema({
name: String,
roles: [{type: mongoose.Schema.Types.ObjectId, ref: 'UserRole'}]
});
const UserModel = mongoose.model('User', userSchema, 'User');
await UserModel.remove({});
await UserRoleModel.remove({});
const user = new UserModel({
name: 'User1'
});
const savedUser = await user.save();
const role = new UserRoleModel({
roleName: 'Test',
user: savedUser._id
});
await role.save();
const users = await UserModel.find().populate('roles').exec();
// Does not populate roles
console.log('Users', users);
const roles = await UserRoleModel.find().populate('user').exec();
// Populates the user
console.log('Roles', roles);
process.exit();
});
すべてのロールを取得すると、ユーザーを作成できます。しかし、ユーザーに属するすべてのロールを取得することはできません。Mongoose:ObjectId配列が設定されていません
あなたはmongoを実行していて、それをES5に移植している限り、コードを実行できるはずです。
私が間違っていることを誰も見ることができますか?
[Multiple populate-mongoosejs](https://stackoverflow.com/questions/12821596/multiple-populates-mongoosejs)の可能な複製 – dnickless
送信したリンクは、配列を使用していません。 – Buzzyboy