2017-01-29 5 views
1

私はを使用していますが、それは "mongo-similar"のクエリ言語です。その配列のユーザーにユーザーU1 'を有するデバイスを見つけるため配列内に値のあるオブジェクトを見つける

devices.insert({key:'d1', name:'Device1', users:['u1'], status: 'OK', current_wl:'123'}) 
    devices.insert({key:'d2', name:'Device2', users:['u1','u1'], status: 'OK', current_wl:'123'}) 
    devices.insert({key:'d3', name:'Device3', users:['u2','u3'], status: 'OK', current_wl:'123'}) 
    devices.insert({key:'d4', name:'Device4', users:['u1','u2','u3','u4'], status: 'OK', current_wl:'123'}) 

私の試みはemtyリストを返します。

a= devices.find({users:{ "$in" : ["u1"] }} ) 
console.log("A", a); 

問題はMongoDBのためだった場合は、正しいクエリますか? mongoでこれを行う別の方法はありますか? lokijsでこれを行う別の方法はありますか?

答えて

1

lokijsについてはわかりませんが、これはMongoの正しいクエリです。

あなただけのこれまで彼らの「ユーザー」のアレイに単一の特定のアイテムを含む文書を照会するつもりなら、モンゴでこの場合の単純なクエリは次のようになります。

db.collection.find({ users: "u1" }) 
+0

を残念ながら、それはとにかくありがとう:-(lokijsでは動作しません。 –

1

私は解決策を見つけました(または回避策)whereを使用して:

a= devices.where(function(obj){ 
     return obj.users.indexOf('u1') > -1; 
    } 
); 
関連する問題