sql >> データベース >  >> NoSQL >> MongoDB

meteormongoドライバーは$eachおよび$position演算子を処理できますか?

    new Mongo.Collection('col')を使用してMeteorコレクションを作成する場合 ネイティブノードMongoDriverではないMinimongoインスタンスが返されますよね?

    そのため、collection.aggregateのように、一部のメソッドが機能しないか、完全にサポートされていません。

    ただし、Col.rawCollection()を介してネイティブドライバーに簡単にアクセスできます。 ネイティブインスタンスで直接クエリを実行します。 もちろん、ネイティブインスタンスにはサーバー上でのみアクセスできます

    したがって、必要なことを行うには、いくつかの方法があります。たとえば、最初にアレイを取得し、希望どおりに再配置して、

    $set: {my_array: sortedArray } 個人的には、2回ではなく1回の更新操作で済むため、この方法をお勧めします($pull$push at $position

    ただし、$pushを$positionの方法で実行したい場合は、ネイティブドライバーを使用して実行してください

    var col = Collection.rawCollection();
    var result = Meteor.wrapAsync(col.update.bind(col)(
      /* update query goes here */
    );
    

    注:Meteor同期スタイルのためにMeteor.wrapAsyncが必要ですが、それなしでも実行できます。 Collection.rawCollection()。update(...)




    1. MongoDBの起動に失敗しました-***fassert()の失敗後に中止します

    2. コレクションJavaMongodb内のすべてのオブジェクトを検索します

    3. pymongo:重複を削除します(mapreduce?)

    4. MongoDB:静的な値を持つ集計$project追加フィールド