Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在MongoDB&;的另一个集合中引用ObjectID;节点?_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 如何在MongoDB&;的另一个集合中引用ObjectID;节点?

Node.js 如何在MongoDB&;的另一个集合中引用ObjectID;节点?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我对这个相当陌生,所以请容忍我,不过我有两个系列。一个叫照片,另一个叫用户 在Node中,我使用mongoose获取数据并将其放入我的MongoDB中。我的模式很好地实现了这一点: var picSchema = new Schema({ uid: String, pid: String, oFile: String }); 我想做的是为uid,我想为上传照片的用户添加ObjectId。我可以将其作为字符串传递,但是我认为必须将字段设置为Obje

我对这个相当陌生,所以请容忍我,不过我有两个系列。一个叫照片,另一个叫用户

在Node中,我使用mongoose获取数据并将其放入我的MongoDB中。我的模式很好地实现了这一点:

var picSchema = new Schema({
        uid: String,
        pid: String,
        oFile: String
});
我想做的是为uid,我想为上传照片的用户添加ObjectId。我可以将其作为字符串传递,但是我认为必须将字段设置为ObjectId,但似乎我不能这样做


除非我遗漏了什么,否则我最好在其中添加用户名并将其用作参考?

使用
mongoose.Schema.Types.ObjectId
用ObjectId填充字段。在本例中,您将使用
User
(或者用户模式的名称)

此外,如果希望在
Pic
文档中展开用户文档,还可以使用Mongoose方法
Populate
。例如:

Pic.find({})
  .populate('uid')
  .exec(function(err, pic) {
    console.log(pic);
    // do something
});

如何在此场景中实现自动填充?
Pic.find({})
  .populate('uid')
  .exec(function(err, pic) {
    console.log(pic);
    // do something
});