我正在使用 pymongo 读取 MongoDB 集合中的文档,然后修改它们,然后使用save将它们保存回来。
不幸的是我开始收到弃用警告:
DeprecationWarning: save is deprecated. Use insert_one or replace_one instead
Run Code Online (Sandbox Code Playgroud)
推荐的替代品具有不同的功能:insert_one抱怨重复_id并update_one需要过滤器参数。
如何禁用弃用警告?
我有用于Linux的Logitech G613键盘。除了默认情况下G(1-6)键映射到F(1-6),并且没有重新映射F键就无法重新映射它们的方法,该方法工作正常。
因此,我浏览了Internet上的大量资源,并找到了g15daemon和libg15。不幸的是,libg15不支持G613,但是我通过添加以下行找到了一种方法来使库检测键盘
DEVICE("Logitech G613",0x46d,0xc53d,G15_KEYS),
现在唯一的问题是,libg15使用来将kernerl驱动程序与设备分离usb_detach_kernel_driver_np(),这是成功的。但是之后,对的调用usb_set_configuration()失败了
USB error: could not set config 1: Device or resource busy
hwinfo分离内核驱动程序之前的输出
38: USB 00.0: 10800 Keyboard
[Created at usb.122]
Unique ID: ADDn.IsFhTXWBs20
Parent ID: k4bc.2DFUsyrieMD
SysFS ID: /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0
SysFS BusID: 1-1:1.0
Hardware Class: keyboard
Model: "Logitech USB Receiver"
Hotplug: USB
Vendor: usb 0x046d "Logitech, Inc."
Device: usb 0xc53d "USB Receiver"
Revision: "43.00"
Driver: "usbhid"
Driver Modules: "usbhid"
Speed: 12 Mbps …Run Code Online (Sandbox Code Playgroud) 我有很多功能,比方说P(),Q(),R(),S(),T(),我有3个控制器,A,B和C.
控制器A使用P()和Q(),B使用R(),S()和T(),而C使用P(),Q()和T().
我已经定义了控制器,我应该在哪里定义函数(哪个文件夹)?如何将它们包含在控制器中?
这些功能可能稍后在其他一些控制器中使用(并且可以对它们进行分类).
例如:
我有一个集合'故事',其中每个文档的形式如下:
{
'_id': <default>
'story': <some very long string which should be unique in the collection>
}
Run Code Online (Sandbox Code Playgroud)
现在每当我有一个故事时,如果它已经存在于'故事'中,我想要它的'_id',否则插入一个带有'story'字段集的新文档,并得到它的'_id'
我能想到的是:
story = "this is a very long story"
id = stories_col.find_one_and_update({
'story': story,
}, {
'story': story,
}, upsert=True, return_document=ReturnDocument.AFTER)['_id']
Run Code Online (Sandbox Code Playgroud)
这不是效率低,因为它会更新(修改)文档,即使它不是必需的吗?这可以提高效率