使用mongoskin查询时更好的引用和解除引用方式

时间:2017-03-16 09:52:16

标签: mongodb mongodb-query mongoskin

在使用mongoskin进行查询时,是否有更好的方法可以在创建收集和解除引用时进行引用,例如

foo collection

Foo: { 
  prop1: true,
  prop2: true,
  bars: [
     {
     "$ref": "Bar",
     "$id": ObjectId("blahblahblah")
     }
  ]
}

酒吧收藏

Bar: {
   testprop: true
}

1 个答案:

答案 0 :(得分:0)

几天后我才弄明白这一点。只是想分享它。

这是集合说用户和组,我们想将组ID引用给用户。 `function createUser(){

    var user = _.omit(userParam, 'password');
    var role = _.omit(userParam, 'role');

    grpid.groupId(userParam.role).then(function(id) {
        if (id) {
            console.log(id);
        }
        console.log("No id found")
        user.role = [{ "$ref": "groups", "$id": id }]

        user.hash = bcrypt.hashSync(userParam.password, 10);

        db.users.insert(
            user,
            function(err, doc) {
                if (err) deferred.reject(err.name + ': ' + err.message);

                deferred.resolve();
            });
    })`

对于团体服务

//Function that returns the role id 

function groupId(role){

//test data
return new Promise((resolve, reject) => {
    db.groups.findOne({ "name": role }, function(err, doc) {
        if (err) {
            reject(err.name + ':' + err.message);
        }
        if (doc) {
            console.log(doc._id);
            resolve({ _id: doc._id });
        }
    })
})

}