pymongo在尝试从标签查询和元素时抛出一个错误
db.users.find({"pseudo":"alucaard"}).distinct("produit_up")
Out[1]:
[{u'abus': 0,
u'avctype': u'image/jpeg',
u'date': u'2012-09-15',
u'description': u'le fameux portable solide',
u'id': u'alucaard134766932677',
u'namep': u'nokia 3310',
u'nombre': 1,
u'orientation': u'portrait',
u'photo': ObjectId('5053cd4e3a5f3a0990da8a61'),
u'prix': 1000,
u'tags': [u'solide', u'le', u'fameux', u'portable'],
u'vendu': False}]
list(db.users.find({"solide":{"$in":{"document_up.tags"}}}))
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\IPython\core\interactiveshell.py", line 2746, in run_code exec code_obj in self.user_global_ns, self.user_ns
File "", line 1, in
list(db.users.find({"solide":{"$in":{"document_up.tags"}}}))
File "C:\Python27\lib\site-packages\pymongo\cursor.py", line 778, in next
if len(self.__data) or self._refresh():
File "C:\Python27\lib\site-packages\pymongo\cursor.py", line 729, in _refresh
self.__uuid_subtype))
InvalidDocument: Cannot encode object: set(['document_up.tags'])
注意:对于pymongo用户来说,只是一个技巧,如果您的用户在文本中的大小有限,只需使用一组转换它,将该组转换为列表:
例如 :
phrase = "hi you, how are you, am i using this"
>第一步:删除逗号或点以避免正则表达式搜索.
>第二,使用phrase.split()来分割单词.
>将其添加到集合中以避免重复的单词.
>将集转换为列表
>制作一个包含一些将从列表中删除的单词的词典是一个好主意,比如“如何”,“你”,“我”……但它会进行大量的计算.
希望这个想法会有所帮助.