在pymongo中使用$ setOnInsert时出现语法错误

时间:2016-01-23 09:53:00

标签: python mongodb pymongo

我正在使用mongodb / pymongo / python并编写了以下代码片段:

db_table.collection_table.findAndModify(
    {
        query: { _id: '1' }, 
        update: {
            $setOnInsert: {'_id': '1',
                'tablename': 'Buyer',
                'collectionname':'Buyer_Report', 
                'viewlink':'All_Buyers', 
                'new_table': 'yes' }
        },
        new: true,
        upsert: true,
})

以上代码生成语法错误:$ setOnInsert部分中的语法无效。可能导致错误的原因是什么?

1 个答案:

答案 0 :(得分:0)

这应该是python代码吗?

肯定看起来应该更像这样:

db_table.collection_table.findAndModify({
    'query': { _id: '1' },
    'update': {
        '$setOnInsert': {
            '_id': '1','tablename': 'Buyer', 'collectionname':'Buyer_Report', 'viewlink':'All_Buyers', 'new_table': 'yes'
            }
        },
    'new': True,
    'upsert': True,
})

pymongo手册中可以看出upsert&的类型。 newBoolean。因此,值应为True而不是'true'