javascript - mongodb findone返回值-数组操作

标签 javascript arrays node.js mongoose

我正在运行node.js服务器(带有express和jade)和mongodb数据库。我有一个使用 findOne 查询 mongodb 的函数。该文档是关于用户以及具有其偏好的数组元素的。所以架构看起来像这样......

var userSchema = mongoose.Schema({

  username        : { type: String, index: true },
  preferences   : [{
              _id : mongoose.Schema.ObjectId,
              title : String,
              color : String,
              shape : String,
              }]
});


UserTabs.findOne({ 'username' :  userID }, function(err, data) {

//How do I manipulate data.preferences to change array order....
}

我将data.preferences对象传递给jade并打印数组内容列表。

问题:在 findOne 函数中,如何操作 data.preferences 对象,以便重新排列数组元素的顺序,然后将新对象传递回 jade?顺便说一句:这个数据是什么对象类型?

仅供引用 - 我不想更改数据库中的顺序。

最佳答案

如果您想操作 Mongoose 查询的结果,通常最好调用 lean()查询,以便您直接获得一个可以自由修改的纯 JavaScript 对象。否则它是一个不那么容易操作的 Mongoose 模型实例:

UserTabs.findOne({ 'username' :  userID }).lean().exec(function(err, data) {
    // data is a JavaScript object, modify it as needed.  Use the standard
    // JavaScript array manipulation functions to modify data.preferences.
    ...
}

关于javascript - mongodb findone返回值-数组操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24707421/

相关文章:

JavaScript循环: restore console after each iteration

node.js - 如何使用angular cli以angular 2导入Electron

node.js - 是否可以检测 Node 模块何时作为谷歌云功能运行?

javascript - Reactjs 中的嵌套循环返回简单的 ListItem - -Object.values 和 Object.keys

javascript - 如何将换行符插入到创建的 Javascript 对象数组中

arrays - 用于不匹配数组维度的 Fortran 子例程指针

javascript - 在extjs中合并两个不同的json对象

javascript - iframe 中不解析 Css 和 Javascript

javascript - SASS random() 总是返回相同的值,为什么?

javascript - 过滤以显示/隐藏具有空列单元格值的 Bootstrap 表行