MongoDB bulkWrite updateOne销毁文档属性类型

时间:2017-05-12 13:55:34

标签: node.js mongodb types bulkinsert insert-update

这是我的代码:

if (Type.isArray(docs) && docs.length > 0) {
            promises.push(
                new Promise(function promise(resolve, reject) {
                    that.model.collection.bulkWrite(
                        docs.map(item => {
                            that.modify(item);
                            return {
                                updateOne: {
                                    filter: {
                                        id: item.id
                                    },
                                    update: item,
                                    upsert: true
                                },
                            }
                        }),
                        (err, data) => {
                            if (err) {
                                reject(err);
                            } else {
                                resolve(data);
                            }
                        }
                    )
                })
            )
        }

基本上我得到了大量的项目,如果它们存在于数据库中,我会更新它们,如果它们不存在,我创建它们。如果代码不明显,我在NodeJS btw中做这一切:D 问题是,在我的旧实现中,我的mongo文档有不同的属性类型,Int32,String,Date,Boolean,你可以命名它!但是对于bulkWrite,它们都会以某种方式转换为String,除了布尔类型的布尔值。

此外,第一次执行新实现时,它不会添加更新现有项,但会复制它们,因为“id”不是,例如2456 Int32,但是它的“2456”字符串

Google没有收到任何结果,或者我没有输入正确的搜索文本。

感谢您的帮助!

0 个答案:

没有答案