收藏
回答

“云开发控制台-高级操作”中执行的结果 和 “云函数”中执行的结果不一样

框架类型 问题类型 终端类型 AppID 环境ID 基础库版本
小程序 Bug 工具 wxaad8a0fc9badc0e6 cloud-dev-0gkcjdmh878eab7b 3.4.3

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/command/Command.elemMatch.html

下面代码片段在“云开发控制台-高级操作”中执行的结果 和 “云函数”中执行的结果不一样:前者能查询到结果,而后者不能。

如果把下面这个条件去掉,则查询结果一致。所以推断是这个条件在云函数中执行有问题

 price: _.gte(0).and(_.lte(2000))


代码片段:

db.collection("house")
.aggregate()
.lookup({
from: "room",
localField: "_id",
foreignField: "houseId",
as: "room",
}).match({
room:
_.elemMatch({
status: 2,
price: _.gte(0).and(_.lte(2000))
})}
).project({
houseId: 1,
"room.status":1,
"room.price":1,
})
.end();
回答关注问题邀请回答
收藏

1 个回答

  • 海洋
    海洋
    06-07

    换另外一个方式解决了。

     price: _.gte(0).and(_.lte(2000))
     拆成两个条件
     price: _.gte(0),
     price:_.lte(2000)
    
    06-07
    有用
    回复
登录 后发表内容