$indexofArray
と$redact
を組み合わせて使用できます。
$lt
インデックスを比較し、$$KEEP
条件が満たされたときに文書$$PRUNE
文書を削除します。
何か
db.collection_name.aggregate({
"$redact": {
"$cond": [
{
"$lt": [
{
"$indexOfArray": [
"$nodes.nodeId",
2
]
},
{
"$indexOfArray": [
"$nodes.nodeId",
1
]
}
]
},
"$$KEEP",
"$$PRUNE"
]
}
})
よう
モンゴDB Javaドライバコード:
MongoClient mongoClient = new MongoClient();
MongoDatabase database = mongoClient.getDatabase("db_name");
MongoCollection<Document> mongoCollection = database.getCollection("collection_name");
Document query = Document.parse("{\n" +
" \"$redact\": {\n" +
" \"$cond\": [\n" +
" {\n" +
" \"$lt\": [\n" +
" {\n" +
" \"$indexOfArray\": [\n" +
" \"$nodes.nodeId\",\n" +
" 2\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"$indexOfArray\": [\n" +
" \"$nodes.nodeId\",\n" +
" 1\n" +
" ]\n" +
" }\n" +
" ]\n" +
" },\n" +
" \"$$KEEP\",\n" +
" \"$$PRUNE\"\n" +
" ]\n" +
" }\n" +
"}");
List<Document> documents = mongoCollection.aggregate(Arrays.asList(query)).into(new ArrayList<>());
ありがとう!どのように投影とフィルタでこれを行うための任意のアイデア? – Locke
Np。あなたはmongo javaドライバの実装を指していますか? – Veeram
イェップ私は午前。これをjavaに変換すると問題が発生しました – Locke