diff options
author | Aaron <aaron@10gen.com> | 2010-09-29 11:14:35 -0700 |
---|---|---|
committer | Aaron <aaron@10gen.com> | 2010-09-29 11:16:25 -0700 |
commit | e74fae251d4b2d581c00e10163c01a4c0ee267bc (patch) | |
tree | 6a535268efa86b87a6deb2a0430d4d278fd7d149 /jstests/rename4.js | |
parent | 2895525cc3550f87e0d67840dd30c99e6ddca4a4 (diff) | |
download | mongo-e74fae251d4b2d581c00e10163c01a4c0ee267bc.tar.gz |
SEVER-394 remove overwrite field name in place mode, as this can cause field ordering to differ between master and slave
Diffstat (limited to 'jstests/rename4.js')
-rw-r--r-- | jstests/rename4.js | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/jstests/rename4.js b/jstests/rename4.js index 22c0fddfa59..29be3744c88 100644 --- a/jstests/rename4.js +++ b/jstests/rename4.js @@ -85,11 +85,19 @@ v( {a:{b:1}}, {$rename:{'a.b':'d'}}, {a:{},d:1} ); v( {a:[5]}, {$rename:{a:'b'}}, {b:[5]} ); v( {aa:[5]}, {$rename:{aa:'b'}}, {b:[5]} ); v( {'0':1}, {$rename:{'0':'5'}}, {'5':1} ); -v( {a:1,b:2}, {$rename:{a:'c'},$set:{b:5}}, {c:1,b:5} ); +v( {a:1,b:2}, {$rename:{a:'c'},$set:{b:5}}, {b:5,c:1} ); v( {aa:1,b:2}, {$rename:{aa:'c'},$set:{b:5}}, {b:5,c:1} ); v( {a:1,b:2}, {$rename:{z:'c'},$set:{b:5}}, {a:1,b:5} ); v( {aa:1,b:2}, {$rename:{z:'c'},$set:{b:5}}, {aa:1,b:5} ); +// (formerly) rewriting single field +v( {a:{z:1,b:1}}, {$rename:{'a.b':'a.c'}}, {a:{c:1,z:1}} ); +v( {a:{z:1,tomato:1}}, {$rename:{'a.tomato':'a.potato'}}, {a:{potato:1,z:1}} ); +v( {a:{z:1,b:1,c:1}}, {$rename:{'a.b':'a.c'}}, {a:{c:1,z:1}} ); +v( {a:{z:1,tomato:1,potato:1}}, {$rename:{'a.tomato':'a.potato'}}, {a:{potato:1,z:1}} ); +v( {a:{z:1,b:1}}, {$rename:{'a.b':'a.cc'}}, {a:{cc:1,z:1}} ); +v( {a:{z:1,b:1,c:1}}, {$rename:{'a.b':'aa.c'}}, {a:{c:1,z:1},aa:{c:1}} ); + // invalid target, but missing source v( {a:1,c:4}, {$rename:{b:'c.d'}}, {a:1,c:4} ); @@ -97,17 +105,17 @@ v( {a:1,c:4}, {$rename:{b:'c.d'}}, {a:1,c:4} ); t.drop(); t.ensureIndex( {a:1} ); -function l( start, mod, expected ) { +function l( start, mod, query, expected ) { t.remove(); t.save( start ); t.update( {}, mod ); assert( !db.getLastError() ); - var got = t.find().hint( {a:1} ).next(); + var got = t.find( query ).hint( {a:1} ).next(); delete got._id; assert.eq( expected, got ); } -l( {a:1}, {$rename:{a:'b'}}, {b:1} ); -l( {a:1}, {$rename:{a:'bb'}}, {bb:1} ); -l( {b:1}, {$rename:{b:'a'}}, {a:1} ); -l( {bb:1}, {$rename:{bb:'a'}}, {a:1} ); +l( {a:1}, {$rename:{a:'b'}}, {a:null}, {b:1} ); +l( {a:1}, {$rename:{a:'bb'}}, {a:null}, {bb:1} ); +l( {b:1}, {$rename:{b:'a'}}, {a:1}, {a:1} ); +l( {bb:1}, {$rename:{bb:'a'}}, {a:1}, {a:1} ); |