猫鼬将属性数组的大小与其他属性进行比较

时间:2019-11-14 16:04:29

标签: javascript node.js mongodb mongoose mongoose-schema

是否可以找到一个属性(数组)大小大于/小于其他属性(数字)的所有文档? 我们假定内部模式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);

1 个答案:

答案 0 :(得分:0)

您可以使用汇总

stat_identity(), stat_count(), stat_bin()

如果这不起作用,请先尝试将数组大小投影到新字段中,然后进行比较

Collection.aggregate([
    { $match: { $gt: [ {$size: "$array"}, "$numberProperty" ] } }
]);

希望这会有所帮助!