6
pymongo
wyrzuca mi błąd podczas próby kwerendy i pierwiastek z tags
jak kwerendy elementu z listy w 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'])
Uwaga: tylko sztuczka dla użytkowników pymongo, jeśli użytkownicy mają ograniczony rozmiar w tekście, po prostu przekształcić go za pomocą ustawiony, konwersji zestawu do listy: na przykład:
phrase = "hi you, how are you, am i using this"
- pierwszy krok: usunięcie przecinka lub kropki, aby uniknąć regularnego searc ekspresyjną hs.
- sekunda, użyj
phrase.split()
, aby podzielić słowa. - dodaj to do
set
, aby uniknąć duplikowania słów. - przekonwertować zestaw do
list
- będzie to dobry pomysł, aby dokonać dictionnary że zawierający pewne słowa, które zostaną usunięte z listy, jak „jak”, „ty”, „ja”, ... ale spowoduje to wiele obliczeń.
nadzieję, że ten pomysł pomoże.
, więc było odwrotnie ?! ponieważ w logice szukamy słowa, jeśli jest ono na liście, a nie listy, jeśli jest w słowie? –
@AbdelouahabPp Rzeczywiście w Mongo jest to podobne do SQL w ten sposób z 'field_name IN (1,2,3)' – Sammaye
Przykro mi, ponieważ "przeskoczyłem" bezpośrednio do nosql, dident dostałem krok sql: p jeszcze raz dziękuję –