gpt4 book ai didi

javascript - Meteor 的 Minimongo 中是否有 $ 运算符替代方案?

转载 作者:可可西里 更新时间:2023-11-01 10:03:11 26 4
gpt4 key购买 nike

我正在尝试在客户端的 Meteor 集合中的数组中查询特定元素,但 Minimongo 不支持 $ 运算符。是否有替代方法来过滤我的查询,使其仅返回数组中的特定元素?

我的收藏结构如下:

{
"userID": "abc123",
"array": [
{
"id": "foo",
"propA": "x",
"propB": "y"
},
{
"id": "bar",
"propA": "a",
"propB": "b"
}
]
}

我正在尝试编写一个查询,它只返回数组中 ID 为“foo”的对象。在 Mongo 中,该查询将是这样的:

collection.find({
"userID": "abc123",
"array.id": "foo"
}, {
"array.$": 1
});

但是,Minimongo 不支持投影中的 $ 运算符,因此会引发错误。我已经使用 $elemMatch 尝试了类似结构的查询,并尝试了 solution described here但它并没有完成我想要做的事情。

是否有另一种方法可以使用 Minimongo 查询此数组中的一个元素?

最佳答案

您可以使用 findWhere提取数组中的第一个匹配对象。试试这样的东西:

// Find all documents matching the selector.
const docs = Collection.find({ userId: 'x', 'array.id': 'y' }).fetch();

// For each document, find the matching array element.
for (let doc of docs) {
let obj = _.findWhere(doc.array, { id: 'y' });
console.log(obj);
}

关于javascript - Meteor 的 Minimongo 中是否有 $ 运算符替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36190401/

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