mongoose查询多表嵌套数据并将字段返回驼峰形式
时间: 2024-02-23 17:59:47 浏览: 82
可以使用 `populate()` 方法进行多表嵌套查询,并使用 `select()` 方法指定需要返回的字段。如果需要返回的字段是驼峰形式,可以在 schema 定义中使用 `toJSON: { virtuals: true }`,并在查询时使用 `lean()` 方法使查询结果变为普通 JavaScript 对象,然后使用 `lodash` 库中的 `camelCase()` 方法将字段名转为驼峰形式。
具体代码如下:
```javascript
const _ = require('lodash');
const User = require('./models/user');
const Post = require('./models/post');
Post.find()
.populate({
path: 'author',
select: 'name email',
options: { lean: true }
})
.lean()
.exec((err, posts) => {
if (err) {
console.error(err);
} else {
posts = _.map(posts, post => {
post.author = _.camelCase(post.author);
return post;
});
console.log(posts);
}
});
```
在上述代码中,我们使用 `populate()` 方法进行多表嵌套查询,并使用 `select()` 方法指定需要返回的字段。在 `populate()` 方法中使用了 `options` 参数,将 `lean` 设为 `true`,使查询结果变为普通 JavaScript 对象。然后使用 `lean()` 方法使查询结果变为普通 JavaScript 对象,最后使用 `lodash` 库中的 `camelCase()` 方法将字段名转为驼峰形式。
阅读全文