find出来直接print是<pymongo.cursor.Cursor object at 0x040DC8D0>
网上看到的都是遍历,如果我想把find出来的结果保存到一个列表就不能保存了,所以请问大神要怎么弄?
认证高级PHP讲师
>>> db.test.find() <pymongo.cursor.Cursor object at 0x108dabf50> >>> >>> list(db.test.find()) [{'_id': ObjectId('5839b12eee86fb71849a0905'), 'name': 'Tom'}, {'_id': ObjectId('5839b134ee86fb71849a0906'), 'name': 'Jim'}]
L'utilisation de find dans pymongo obtiendra un objet curseur. Si vous souhaitez implémenter l'opération de recherche dans le shell MongoDB, par exemple :
> db.test.find() { "_id" : ObjectId("5838531e0f3577fc9178b834"), "name" : "zhangsan" }
Vous devez utiliser la méthode find_one au lieu de la méthode find dans pymongo :
>>> print db.test.find_one() {u'_id': ObjectId('5838531e0f3577fc9178b834'), u'name': u'zhangsan'} >>> print db.test.find() <pymongo.cursor.Cursor at 0x7f4ac789e450> >>> result = [] >>> for x in db.test.find(): result.append(x) >>> print(result) >>> [{u'_id': ObjectId('5838531e0f3577fc9178b834'), u'name': u'zhangsan'},...]
De cette façon, vous pouvez obtenir plusieurs éléments de données.
Tout ce que je sais, c'est parcourir le curseur et ajouter à la liste un par un. Existe-t-il un autre moyen ? Demandez conseil à Dieu
En fait, c'est très simple. Les réponses ci-dessus sont toutes traversées, en python
array = list(posts.find())#posts是我的collection type(array) #list
Note complémentaire
#list to datafram import pandas as pd df = pd.DataFrame(array)
L'utilisation de find dans pymongo obtiendra un objet curseur. Si vous souhaitez implémenter l'opération de recherche dans le shell MongoDB, par exemple :
Vous devez utiliser la méthode find_one au lieu de la méthode find dans pymongo :
De cette façon, vous pouvez obtenir plusieurs éléments de données.
Tout ce que je sais, c'est parcourir le curseur et ajouter à la liste un par un. Existe-t-il un autre moyen ? Demandez conseil à Dieu
En fait, c'est très simple. Les réponses ci-dessus sont toutes traversées, en python
Note complémentaire