Json 如何使用Mongoose将文档插入到只有一个ObjectID的集合中?

Json 如何使用Mongoose将文档插入到只有一个ObjectID的集合中?,json,node.js,mongodb,express,mongoose,Json,Node.js,Mongodb,Express,Mongoose,我有一个JSON,我想用Mongoose存储在集合中。我用于将文档插入集合的函数是: UserSchema.statics.SaveDocument=function(docs,callback){ docs=JSON.parse(docs); this.create(docs,function(err,data){ if(err) callback(err); else callback(data); }); }; var Us

我有一个JSON,我想用Mongoose存储在集合中。我用于将文档插入集合的函数是:

UserSchema.statics.SaveDocument=function(docs,callback){
    docs=JSON.parse(docs);    
    this.create(docs,function(err,data){
        if(err) callback(err);
        else callback(data);
    });
};
var UserSchema   = new Schema({
    A : String,
    B : String,
    C : [
        {
            D : Schema.Types.ObjectId,
            E : String,
        }
    ]
});
集合的架构为:

UserSchema.statics.SaveDocument=function(docs,callback){
    docs=JSON.parse(docs);    
    this.create(docs,function(err,data){
        if(err) callback(err);
        else callback(data);
    });
};
var UserSchema   = new Schema({
    A : String,
    B : String,
    C : [
        {
            D : Schema.Types.ObjectId,
            E : String,
        }
    ]
});
我尝试存储的JSON格式如下:

{
    "A" : "something",
    "B" : "something",
    "C" : [
            {
                    "D" : "something",
                    "E" : "Something",
            }
    ],
}  
    {
    "_id" : ObjectId("55XXXXX"),
    "A" : "something",
    "B" : "something",
    "C" : [
            {
                    "D" : "something",
                    "E" : "Something",
                    "_id" : ObjectId("56XXXXX"),
            }
    ],
    "__v" : 0
}  
存储到集合中的文档如下所示:

{
    "A" : "something",
    "B" : "something",
    "C" : [
            {
                    "D" : "something",
                    "E" : "Something",
            }
    ],
}  
    {
    "_id" : ObjectId("55XXXXX"),
    "A" : "something",
    "B" : "something",
    "C" : [
            {
                    "D" : "something",
                    "E" : "Something",
                    "_id" : ObjectId("56XXXXX"),
            }
    ],
    "__v" : 0
}  
现在,我想要的是存储由我的函数生成的ObjectId,而不是存储mongoose插入到元素C数组中的额外ObjectId。
我知道通过在函数中使用{id:false}我可以禁用自动生成的id,但我不能将其用于mongoose在C中插入的不必要的id,因为这样可以消除ObjectID。
有人能帮我怎么做吗?

另一件事是我不知道从哪里来的“\uu V”:0

对于uu V部分:您可以通过附加
{versionKey:false}
来禁用它,请参见:

要删除C中的_id,可以定义一个子模式,如

var C = mongoose.Schema({
    //C schema content
},{ _id : false });
并将原始模式更改为类似以下内容:

var UserSchema   = new Schema({
    A : String,
    B : String,
    C : [subSchema] ....
...)};

然后尝试插入新文档。

也可以通过在模式的元素C中添加\u id:false来完成:

var UserSchema   = new Schema({
    C : [
        {
            D : Schema.Types.ObjectId,
            E : String,
            _id : false
        }
    ]
});
当有多个模式使用相同的子结构时,子模式可以帮助您,但这里我只有一个模式,所以使用子模式感觉不好