Javascript js mongoDb复制项提供外部数据

Javascript js mongoDb复制项提供外部数据,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,我有一个数组: "data": [ { "photo": "no-photo.jpg", "_id": "5e9aabd9c975a10a7ee48476", "title": "Title", "description": "Description", "phone": "77477926783", "fromLocation": "5

我有一个数组:

"data": [
        {
            "photo": "no-photo.jpg",
            "_id": "5e9aabd9c975a10a7ee48476",
            "title": "Title",
            "description": "Description",
            "phone": "77477926783",
            "fromLocation": "5e9aa8a9c975a10a7ee48474",
            "toLocation": "5e9aa8bac975a10a7ee48475",
            "price": 1000000,
            "date": "1998-02-23T00:00:00.000Z",
            "user": "5e91729f147813258ef1f373",
            "createdAt": "2020-04-18T07:27:21.743Z",
            "__v": 0,
            "courses": [],
            "id": "5e9aabd9c975a10a7ee48476"
        }
    ]
我对…循环使用

for (const item of res.advancedResults.data) {
  console.log(item)
}
它给出了正常的:

{
 "photo": "no-photo.jpg",
 "_id": "5e9aabd9c975a10a7ee48476",
 "title": "Title",
 "description": "Description",
 "phone": "77477926783",
 "fromLocation": "5e9aa8a9c975a10a7ee48474",
 "toLocation": "5e9aa8bac975a10a7ee48475",
 "price": 1000000,
 "date": "1998-02-23T00:00:00.000Z",
 "user": "5e91729f147813258ef1f373",
 "createdAt": "2020-04-18T07:27:21.743Z",
 "__v": 0,
 "courses": [],
 "id": "5e9aabd9c975a10a7ee48476"
}
但当我复制它时,就像:

for (const item of res.advancedResults.data) {
  console.log({...item})
}
它给出:

{ '$__':
     InternalCache {
       strictMode: true,
       selected: {},
       shardval: undefined,
       saveError: undefined,
       validationError: undefined,
       adhocPaths: undefined,
       removing: undefined,
       inserting: undefined,
       saving: undefined,
       version: undefined,
       getters: {},
       _id: 5e9aabd9c975a10a7ee48476,
       populate: undefined,
       populated: undefined,
       wasPopulated: false,
       scope: undefined,
       activePaths: [StateMachine],
       pathsToScopes: {},
       cachedRequired: {},
       session: null,
       '$setCalled': Set {},
       ownerDocument: undefined,
       fullPath: undefined,
       emitter: [EventEmitter],
       '$options': [Object] },
    isNew: false,
    errors: undefined,
    _doc:
     { photo: 'no-photo.jpg',
       _id: 5e9aabd9c975a10a7ee48476,
       title: 'Title',
       description: 'Description',
       phone: '77477926783',
       fromLocation: 5e9aa8a9c975a10a7ee48474,
       toLocation: 5e9aa8bac975a10a7ee48475,
       price: 1000000,
       date: 1998-02-23T00:00:00.000Z,
       user: 5e91729f147813258ef1f373,
       createdAt: 2020-04-18T07:27:21.743Z,
       __v: 0 },
    '$locals': {},
    '$$populatedVirtuals': { courses: [] },
    '$init': true } 

如何正确复制对象?

无论何时执行任何操作,如
find
findOne
,等等,Mongoose都会将结果包装在Mongoose模型/文档中,该模型/文档将包含额外的元数据

如文件和-

是根据
Schema
定义编译的奇特构造函数。一 模型的实例称为。模型负责 从基础MongoDB数据库创建和读取文档

Mongoose模型为用户提供了几个静态帮助函数。每个函数都返回一个


从外观上看,您正试图将mongoose模型像普通JavaScript对象一样进行获取/解构

有两种方法可以实现这一点-

  • 模型中使用
    {lean:true}
    选项。find()
    model.findOne()
    方法或使用
    lean()
    方法。然而这 包含一些您可以阅读的缺点

  • 使用 方法将文档转换为普通javascript对象


  • 因为您正在获取mongoose模型,所以更改为
    console.log({…item.toObject()})
    以获取预期的behavior@KunalMukherjee你能把你的答案和过去的答案抄下来吗)我会批准的