gpt4 book ai didi

node.js - 查询Mongoose中的多个子文档元素

转载 作者:可可西里 更新时间:2023-11-01 09:57:28 25 4
gpt4 key购买 nike

我似乎无法使以下查询正常工作:

Group.find({ $or: [ {'groupOwner': req.user._id }, { 'subscribers.user': req.user._id, 'subscribers.level': 'owner' } ] }, 'groupName', { sort: ['groupName', 'ascending'] }, function(err, groups) {

我的模式有一个组,订阅者作为一个子文档数组。我想找到 groupOwner 与传递的用户 ID 匹配的所有组(工作正常),以及 subscribers.user = req.user._id AND subscribers.level = 'owner'

写入的查询返回所有子文档,其中 subscribers.user = req.user._id 或有一些订阅者级别 = 'owner'。明确地说,我只想要子文档具有 subscribers.user = req.user._id 并且相同的子文档具有 subscribers.level = 'owner' 的组。

我已经尝试了所有方式的 $and 和 $elemMatch,但就是无法得到它。感谢您的帮助!

最佳答案

$elemMatch 是匹配同一数组元素中的多个字段时的正确运算符;您的查询应如下所示:

Group.find(
{ $or: [
{ groupOwner: req.user._id },
{ subscribers: { $elemMatch: { user: req.user._id, level: 'owner' }}}
]},
'groupName',
{ sort: ['groupName', 'ascending'] },
function(err, groups) { ...

关于node.js - 查询Mongoose中的多个子文档元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15442323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com