CoreMongooseArray 到普通数组

vin*_*459 9 mean mongoose mongodb node.js mean-stack

我从一个架构中筛选出 2 个元素,并希望在另一个架构中更新。为此,我使用 slice 方法从数组中列出前 2 个元素。但我得到

CoreMongooseArray ['element1','element2']

而不是 ["element1", "element2"]

如何删除“CoreMongooseArray”?

connection.connectedusers.find({},  async (err, docs) => {
if(err) throw err;
var users = docs[0].connectArray;
if (docs[0] != null && users.length >= 2) {
 var shortListed = users.slice(0, 2);
 try {
                await connection.chatschema.updateMany({}, { $push: { usersConnected: [shortListed] } }, { upsert: true });
            } catch (err) {
                res.status(201).json(err);
            }
}
Run Code Online (Sandbox Code Playgroud)

Tom*_*ert 16

您需要添加lean()到您的查询中。

文档

从启用了精简选项的查询返回的文档是普通的 javascript 对象,而不是 Mongoose 文档。它们没有保存方法、getter/setter、virtuals 或其他 Mongoose 功能。


dan*_*ang 7

如果您已经拥有 mongoose 数组并且喜欢转换为简单的 js 数组

const jsArray = mongooseArray.toObject();
Run Code Online (Sandbox Code Playgroud)

https://mongoosejs.com/docs/api/array.html#mongoosearray_MongooseArray-toObject