Files
mongo/jstests/aggregation/sources/replaceRoot/use_cases.js
Zac 591928c619 SERVER-108478 JS formatted by prettier and remove clang-format (#39656)
GitOrigin-RevId: 6c8f6aded47f260aa4f7c231b17dae3302cb1e04
2025-08-21 17:27:09 +00:00

29 lines
958 B
JavaScript

// Basic integration tests for $replaceRoot and its alias $replaceWith.
const coll = db.replaceWith_use_cases;
coll.drop();
assert.commandWorked(
coll.insert([
{
_id: 0,
comments: [
{user_id: "x", comment: "foo"},
{user_id: "y", comment: "bar"},
],
},
{_id: 1, comments: [{user_id: "y", comment: "bar again"}]},
]),
);
// Test computing the most frequent commenters using $replaceRoot.
let pipeline = [{$unwind: "$comments"}, {$replaceRoot: {newRoot: "$comments"}}, {$sortByCount: "$user_id"}];
const expectedResults = [
{_id: "y", count: 2},
{_id: "x", count: 1},
];
assert.eq(coll.aggregate(pipeline).toArray(), expectedResults);
// Test the same thing but using the $replaceWith alias.
pipeline = [{$unwind: "$comments"}, {$replaceWith: "$comments"}, {$sortByCount: "$user_id"}];
assert.eq(coll.aggregate(pipeline).toArray(), expectedResults);