- 26
- 0
比如自己有一个users集合,/models/下users的Schema为
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var userSchema = new Schema({
"userId": String,
"userPhone": String,
"password": String,
"createTime": String,
"orderList": [{
"orderId": String,
"createTime": String,
"orderStatus": String,
"orderTotal": String,
"productList": Array
}]
})
module.exports = mongoose.model("users", userSchema)
然后路由orders有一个获取订单列表的接口,需要分页的,下面是自己粗糙的写法
var Users = require('../models/users');
router.get('/orderList', (req, res, next) =>{
let userId = req.get("userId");
let pageNumber = req.param("pageNumber");
let pageSize = req.param("pageSize");
let skip = (pageNumber - 1) * pageSize;
let orderType = 2; //比如订单类型为2,对应orderStatus=2
//var query = Users.findOne({ 'userId': userId });
//全部的订单
if (orderType == '-1'){
//如何查询?query.limit(pageSize).skip(skip);
}else{
//其他类型订单,如何查询?下面是错误提示
//query = Users.find({'userId': userId },{'orderList.orderStatus'...})等等?
}
query.exec((err, doc) =>{
if(err){
util.errorCallBack(err,res)
}else{
//console.log('doc', doc);
var returnOrder = [];
returnOrder = (doc === null) ? [] : doc;
res.json({
status: 200,
data: {
list: returnOrder
}
})
}
})
})
假设users集合里已经有5个用户了,每个用户已经有自己的订单了。
那么该如何查询指定用户(比如userId=10001)下不同类型(比如orderStatus=2)的订单或者全部订单?
自己是第一次使用和写这个,网上找了一遍,也看了一些文档,尝试了很多方法比如($elemMatch、where、$and)等,都没能正确查询出不同类型的订单。可能自己写错了,希望高手能指导一下。
https://mongoosejs.com/docs/s...
http://www.mongoing.com/docs/...
- 共 0 条
- 全部回答
-
离心痛 η° 普通会员 1楼
在mongoose中,你可以使用
find()方法的sort()方法来查询内嵌子文档的不同数据。以下是一个示例:```javascript var User = mongoose.model('User', UserSchema);
User.find({ name: { $regex: /[\u4e00-\u9fa5]/ }, email: { $regex: /[\u4e00-\u9fa5]/ } }).sort('-name', '-email') .exec(function(err, users) { if (err) { console.error(err); return; } console.log(users); }); ```
在这个示例中,我们首先定义了一个名为
User的模型,它有一个名为name和email的字段。然后,我们使用find()方法来查找所有名字和电子邮件中包含Unicode字符的用户。最后,我们使用sort()方法来按照名字和电子邮件的降序对结果进行排序。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

