Python 如何在pymongo中从列表中查询元素
Python 如何在pymongo中从列表中查询元素,python,search,pymongo,Python,Search,Pymongo,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'nam
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 "<ipython-input-1-8dff98261d7a>", line 1, in <module>
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'])
第一步:删除逗号或点以避免正则表达式搜索
其次,使用phrase.split()
拆分单词
将此项添加到集合
,以避免重复单词
将集合转换为列表
制作一个包含一些将从列表中删除的单词的词汇表是一个好主意,如“如何”、“你”、“我”。。。但这需要进行大量的计算
希望这个想法能有所帮助。你的疑问是错误的。尝试更接近于:
list(db.users.find({"document_up.tags":{"$in":["solide"]}}))
原来是相反的?!因为在逻辑上,如果一个单词在一个列表中,我们就搜索它,如果它在一个单词中,我们就搜索它,而不是一个列表?@Abdelouahapp事实上在Mongo中,它很像SQL,在(1,2,3)中有字段名很抱歉,因为我直接“跳”到了nosql,没有得到SQL步骤:p谢谢again@AbdelouahabPpNP开始学习的最佳地点是:)
list(db.users.find({"document_up.tags":{"$in":["solide"]}}))