0

i am using neomodel==4.0.1 on python 3.8

i have structurednode name store with integerproperty code when i search store with get method it is not able to find any match

StoreNodeDoesNotExist         
----> 1 StoreNode.nodes.get(code='23416')

app/.env/lib/python3.8/site-packages/neomodel/match.py in get(self, lazy, **kwargs)
    605             raise MultipleNodesReturned(repr(kwargs))
    606         elif not result:
--> 607             raise self.source_class.DoesNotExist(repr(kwargs))
    608         else:
    609             return result[0]

StoreNodeDoesNotExist: (StoreNodeDoesNotExist(...), "{'code': '23416'}")

or

StoreNodeDoesNotExist
----> 1 StoreNode.nodes.get(code=23416)

app/.env/lib/python3.8/site-packages/neomodel/match.py in get(self, lazy, **kwargs)
    605             raise MultipleNodesReturned(repr(kwargs))
    606         elif not result:
--> 607             raise self.source_class.DoesNotExist(repr(kwargs))
    608         else:
    609             return result[0]

StoreNodeDoesNotExist: (StoreNodeDoesNotExist(...), "{'code': 23416}")

on the other hand if i run cypher it matchs

In [9]: results, columns = db.cypher_query("MATCH (n:StoreNode{code:'23416'}) return n;",)

In [10]: [StoreNode.inflate(row[0]) for row in results]
Out[10]: [<StoreNode: {'created_on': datetime.datetime(2020, 11, 17, 7, 31, 49, 262277, tzinfo=<UTC>), 'modified_on': None, 'delivery_status': None, 'name': 'Ll Shop (23416) ', 'code': 23416, 'id': 145798}>]

can someone explain the reason and how to correct my former neomodel query?

Learner
  • 81
  • 1
  • 5

2 Answers2

0

You have to pass code as an integer not a string:

StoreNode.nodes.get(code=23416)
Alex L.
  • 53
  • 4
0

setting property code to integer solved the problem.

It raised because I had code as integer property while during bulk insertion i set its value in string. I need to add a schema check on csv upload code.

Learner
  • 81
  • 1
  • 5