【发布时间】:2015-05-26 15:06:55
【问题描述】:
我有以下 Mongo 集合:
{
id: '123456',
name: 'GameXYZ',
reviews: [
{createdBy: 'Bob', score: 5}, {createdBy: 'John', score: 8}
]
}
我想创建一个仅返回 Bob 创建的评论的发布函数:
{
reviews: [
{createdBy: 'Bob', score: 5}
]
}
我试过这个:
return myCollection.find({'reviews.createdBy': 'Bob'}, {'reviews.$': 1});
问题是 Meteor 返回整个文档。根据他们的文档,“在客户端还没有 $ 和 $elemMatch 等字段操作符。” 我的功能在服务器上运行,所以我不知道为什么它不起作用。它确实在 Mongo Shell 上工作。
我的问题是:谁能推荐一种在 Meteor 中仅发布该数组的单个对象的方法?
【问题讨论】:
-
试试这个
find({"reviews":{"$elemMatch":{"createdBy":"Bob"}}},{"reviews.$.createdBy":1}) -
我试过了,但不幸的是它在客户端和服务器上都不起作用。它似乎只适用于 Mongo Shell。我最终接受了 Noah 的建议并创建了一个评论集。不管怎么说,还是要谢谢你。希望 Meteor 能尽快支持 elemMatch。
标签: meteor