mongoose查询返回普通的javascript

时间:2018-01-11 12:44:13

标签: javascript mongodb mongoose

我的猫鼬有问题 mongoose查询不返回mongoose文档实例

这是我的架构:

const mongoose = require('mongoose');

var AlbumSchema = new mongoose.Schema({
    name: String,
    cover: String,
    releaseDate: Date,
}, {
    timestamps: true,
});

AlbumSchema.index({name:'text'});

export const Album = mongoose.model('Album', AlbumSchema);

这是我的疑问:

import {Album} from './Album'

Album.create({
  name:"Eddie",
}).then((album)=>{
  console.log(album);
})

结果:

{ _id: 5a575b82d921be1fc0aa8b44,
name: 'Hogtw',
createdAt: 2018-01-11T12:41:38.711Z,
updatedAt: 2018-01-11T12:41:38.711Z,
__v: 0 }

2 个答案:

答案 0 :(得分:0)

在模式中定义toObject方法并在实例上应用

var AlbumSchema = new Schema({
        name :{
            type: String
        }
    },
        {
        timestamps: {
            createdAt: 'created',
            updatedAt: 'updated'
        },
        id: false,
        toJSON: {
            getters: true,
            virtuals: true
        },
        toObject: {
            getters: true,
            virtuals: true
        }}
    );

//在模型中使用实例上的toObject方法

import {Album} from './Album'

Album.create({
  name:"Eddie",
}).then((album)=>{
  console.log(album.toObject());
})

答案 1 :(得分:0)

如果你想在创建数据时使用猫鼬对象,另一种方法是使用.save()方法,它将在回调中返回mongoose对象。

let album = new Album({ name: 'Eddie' });
album.save(function (err, savedAlbum) {
if (err) {
// show err // 
}
else {
// show response
}
})