是否可以找到一个属性(数组)大小大于/小于其他属性(数字)的所有文档? 我们假定内部模式numberProperty的类型为Number,并且数组中包含ObjectIds。
我的意思是:
BulkOperations bulkOp = mongotemplate.bulkOps(BulkMode.UNORDERED , Message.class);
bulkOp.insert(messages.parallelStream()
.map(Message::flatToTmpMessage) // map a DtoMessage into Message
.collect(Collectors.toList()));
long nMessage = bulkOp.execute().getInsertedCount();
Triend也类似这样,但也不起作用:
List<Document> documents = messages.parallelStream()
.map(Message::flatToDocument) // I create a Bson from DtoMessage foreach document
.collect(Collectors.toList());
String collectionName = mongotemplate.getCollectionName(Message.class);
mongotemplate.getCollection(collectionName).insertMany(documents);
答案 0 :(得分:0)
您可以使用汇总
stat_identity(), stat_count(), stat_bin()
如果这不起作用,请先尝试将数组大小投影到新字段中,然后进行比较
Collection.aggregate([
{ $match: { $gt: [ {$size: "$array"}, "$numberProperty" ] } }
]);
希望这会有所帮助!