Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用Pymongo在MongoDB的fs.chunks集合中添加字段?_Python_Mongodb_Pymongo - Fatal编程技术网

Python 如何使用Pymongo在MongoDB的fs.chunks集合中添加字段?

Python 如何使用Pymongo在MongoDB的fs.chunks集合中添加字段?,python,mongodb,pymongo,Python,Mongodb,Pymongo,我正在使用GirdFs将图像存储在我的本地目录中,以保存到MongoDB集合 from pymongo import MongoClient from imutils import paths import gridfs client = MongoClient("127.0.0.1", 27017) db = client.dbs fs = gridfs.GridFS(db) imagePaths = list(paths.list_images("images")) for i,

我正在使用GirdFs将图像存储在我的本地目录中,以保存到MongoDB集合

from pymongo import MongoClient
from imutils import paths
import gridfs

client = MongoClient("127.0.0.1", 27017)
db = client.dbs 
fs = gridfs.GridFS(db)


imagePaths = list(paths.list_images("images"))

for i, imagePath in enumerate(imagePaths):
    name = imagePath.split(os.path.sep)[-2]  # to get the name of the directory
    fs.put(open(imagePath, 'rb'))
上面的代码创建了两个集合
fs.files
fs.chunks
。 它在包含字段的
fs.files
中创建元数据

  • _身份证
  • md5
  • 块大小
  • 长度
  • 上载日期
所以在我的Images文件夹中有一些子文件夹,我想将子文件夹的名称(存储在name变量中)保存到
fs.files

我怎样才能做到这一点


我检查了
put
方法的文档。它接受数据参数和**kwargs。我不知道这是否有助于添加新字段,因为没有可用的详细信息。

中描述的任何文件级选项都可以作为关键字参数传递

例如,您可以这样设置文件名

fs.put(open(imagePath, 'rb'), filename="foo")
文件文档规范中不可用的任何其他字段都可以存储在文件文档元数据字段中
元数据字段可以保存任何类型,因此这里存储的任何内容都由您自己负责

fs.put(open(imagePath, 'rb'), metadata={"subfolder": "foo-subfolder"})