没有`_id`可以填充吗?

时间:2016-10-24 12:41:43

标签: javascript mongoose database

我手动为我的馆藏中的每个项目设置uid ...我想知道我可以使用uid填充吗? 我不想使用'_id',因为在我的数据库中有很多收藏并且应该改变很多东西......这样的事情:

var mongoose = require('mongoose')
  , Schema = mongoose.Schema

    var PersonSchema = new Schema({
        name    : String
      , age     : Number
      , stories : [{ type: String, ref: 'Story' }]
    });

    var StorySchema = new Schema({
        _creator : { type: String, ref: 'Person' }
      , title    : String
      , fans     : [{ type: String, ref: 'Person' }]
    });

    var Story  = mongoose.model('Story', StorySchema);
    var Person = mongoose.model('Person', PersonSchema);

2 个答案:

答案 0 :(得分:0)

不,没有' _id'不可能有mongodb文件。 ,如果你想避免重复id,你可以把uid放入' _id'在保存文档之前。 如果你单独留下uid,那就是' _id'将自动填充为ObjectId。

答案 1 :(得分:0)

下面是一个清晰的示例(https://mongoosejs.com/docs/populate.html):

Story.
  find(...).
  populate({
    path: 'fans',
    select: 'name -_id' // <---------------'-_id' exclude _id field.
  }).
  exec();