繁体   English   中英

MongoDB 从聚合中排除某些文档

[英]MongoDB exclude certain documents from aggregation

我正在尝试从我已经使用以下代码成功实现的集合中随机获取一个文档:

const username = 'willem';
db.db(MDBC.db).collection(MDBC.pC).aggregate([{ $sample: { size: 1 } }]).next((err, doc) => {console.log(doc)});

但是,我想对我选择的随机文档施加一定的限制,如下所示:

随机选择的文档有一个用户名字段,该字段不能具有特定值,在本例中为“willem”。

嗯,您可以在获取随机文档之前添加一个新的管道阶段。

const username = 'willem';
db.db(MDBC.db).collection(MDBC.pC).aggregate([
{ $match: { username: { $not: { $eq: username } } } }
{ $sample: { size: 1 } }
])
 .next((err, doc) => {console.log(doc)});

匹配过滤文档。 在这里,它将所有没有 willem 用户名的文档传递到下一阶段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM