2012-04-03 25 views
5

ben gibi oid tarafından db belgeleri almak gerek OID Dokümanı arama yapılır:, bunu yapmak içinmongoengine

Docs.objects(_id='4f4381f4e779897a2c000009') 

Ama nasıl _ID Nesne Kimliği nesnesini gerektirir ve hatta bunu pymongo gelen objectId ayarlamaya çalışırsanız çalışmıyor

Docs.objects(_id=pymongo.objectid.ObjectId('4f4381f4e779897a2c000009')) 

dönüş boş liste

cevap

15

Nasıl sadece ham dizesini kullanarak ilgili: sağ ...

Docs.objects.get(id='4f4381f4e779897a2c000009') 

muhtemelen en kolay yoludur ?

+0

Ancak birincil anahtar için çalışmıyor. Yoksa ben tek mi? –

+0

http://docs.mongoengine.org/apireference.html#mongoengine.queryset.QuerySet.get – Wtower

20

Bu çalışması gerekir:

Docs.objects(pk='4f4381f4e779897a2c000009') 
+0

Evet, bu doğru, thx. – Denis

+0

Bu bir liste döndürür. Tek bir nesne değil. – Raptor

7

Bu soruya, kendimle ilgili çok fazla sorun yaşadığım için geldim. Bu PyMongo changed this gibi görünüyor ve objectid artık içeride pymongo ve yerine artık geçerli:

import bson 
Doc.objects.get(id=bson.objectid.ObjectId('4f4381f4e779897a2c000009')) 

Ayrıca Mongoengine NesneKimliği alan için adı 'kimlik' kullanır.

+1

Paylaşım için teşekkürler, işe yarıyor. –

İlgili konular