class Picture
property :name
property :user_ids
serialize :user_ids
end
Picture.create(name: '1', user_ids: [1,4,5])
Comment trouver toutes les images ayant l'ID utilisateur 1 user_ids propriétéNeo4j.rb: comment rechercher des biens serialize tableau ayant
J'essaie ce de manière:
Picture.as(:p).where('ALL(x IN [1] WHERE x IN p.user_ids)')
Neo4j. version rb - neo4j (8.0.13)
Neo4j - 3.1.1 Enterprise
Mais cela ne fonctionne pas. Ou il y a une meilleure façon de stocker tableau et interroger aussi bien, toute aide serait très appréciable
EDIT: Montré Exemple de Bruno & Ma description de noeud ci-dessus, je l'ai utilisé exemple de noeud
L'exemple @Bruno fonctionne correctement.
Voici mon noeud Neo4j vue
match (p:Place) where ALL(x IN [14] WHERE x IN p.from_airport_ids) return p
Ce ne fonctionne pas dans mon cas
class Place
include Neo4j::ActiveNode
property :name
property :from_airport_ids
serialize :from_airport_ids
end
Créer place via l'API
{
"place":{
"name":"Name",
"from_airport_ids":[14,44,67]
}
}
Est-ce lié à la façon dont mes valeurs de tableau stockées dans le nœud et comment les valeurs d'exemple @Bruno sont stockées?
solution de Bruno est probablement le meilleur, mais je soupçonne que la raison pour laquelle votre solution ne fonctionne pas parce que vous utilisez 'all'. Je pense que 'ANY' fonctionnerait mieux –
@BrianUnderwood J'ai créé un noeud avec' create (: Picture {name: '1', user_ids: [1,4,5]}) ', a effectué la requête' MATCH (p) où ALL (x IN [1] WHERE x IN p.user_ids) retourne p' et a travaillé. Mais je suis d'accord avec vous que l'approche utilisant l'opérateur IN est au moins plus lisible. –
@BrianUnderwood Peut-être a un message d'erreur pas informé –