30 lines
933 B
JavaScript
30 lines
933 B
JavaScript
// to run:
|
|
// ./mongo jstests/ref.js
|
|
|
|
db.otherthings.drop();
|
|
db.things.drop();
|
|
|
|
var other = { s : "other thing", n : 1};
|
|
db.otherthings.save(other);
|
|
|
|
db.things.save( { name : "abc" } );
|
|
x = db.things.findOne();
|
|
x.o = new DBPointer( "otherthings" , other._id );
|
|
db.things.save(x);
|
|
|
|
assert( db.things.findOne().o.fetch().n == 1, "dbref broken 2" );
|
|
|
|
other.n++;
|
|
db.otherthings.save(other);
|
|
assert( db.things.findOne().o.fetch().n == 2, "dbrefs broken" );
|
|
|
|
db.getSiblingDB("otherdb").dropDatabase();
|
|
var objid = new ObjectId();
|
|
db.getSiblingDB("otherdb").getCollection("othercoll").insert({_id:objid, field:"value"});
|
|
var subdoc = db.getSiblingDB("otherdb").getCollection("othercoll").findOne({_id:objid})
|
|
|
|
db.mycoll.drop();
|
|
db.mycoll.insert({_id:"asdf", asdf:new DBRef("othercoll", objid, "otherdb")});
|
|
var doc = db.mycoll.findOne({_id:"asdf"}, {_id:0, asdf:1});
|
|
assert.eq(tojson(doc.asdf.fetch()), tojson(subdoc), "otherdb dbref");
|