请教一个小程序云开发数据库聚合函数的问题

2019 年 12 月 28 日
 just1

想要从数据库中随机出来一条符合条件的记录,其中有一个条件是记录的 type 属性存在于一个 array 数据

{"name": "abc", "type": "a", "floor": 1}
{"name": "abcd", "type": "b", "floor": 2}
{"name": "abcde", "type": "c", "floor": 2}

现在的代码

let condition = [ 'a', 'b' ];
const _ = db.command;
db.collection('db').aggregate().match({
      floor: 1,
      type: _.or(condition.map(item => _.eq(item)))
    }).sample({
      size: 1
    }).then(res => {
      console.log(res)
    })

查询出来的结果发现 type 并没有被约束,达不到预期目的,十分疑惑,除非是将约束条件更改为 type: 'a',这样才能被约束,type: _.eq('a')都不行。

1739 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/633105

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX