在使用mongoskin进行查询时,是否有更好的方法可以在创建收集和解除引用时进行引用,例如
foo collection
Foo: {
prop1: true,
prop2: true,
bars: [
{
"$ref": "Bar",
"$id": ObjectId("blahblahblah")
}
]
}
酒吧收藏
Bar: {
testprop: true
}
答案 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 });
}
})
})
}