2017-12-07 5 views
0

フィールド "name"に基づいて重複したエントリを探したいので、結果として "name"と "_id"を取得したいと思います。ここ収集ノードjsから重複enteriesを見つけるか?

は私のコードです:私は、集計関数を使用してみましたが、それがnullとして、データベースからすべての結果を返している

ModelRestaurant.aggregate((
    // { "$group": { "_id": "$name", "count": { "$sum": 1 } } }, 
    // { "$match": { "_id": { "$ne": null }, "count": { "$gt": 1 } } }, 
    // { "$project": { "name": "$_id", "_id": 0 } } 
    { $group: { "_id": "$name", "name": { $first: "$name" }, "count": { $sum: 1 } } }, 
    { $match: { "count": { $gt: 1 } } }, 
    { $project: { "name": 1, "_id": 0 } }, 
    { $group: { "_id": null, "duplicateNames": { $push: "$name" } } }, 
    { $project: { "_id": 0, "duplicateNames": 1 } } 
), function (err, result) { 
    if (result) { 
     console.log(result) 
    } 
}) 

上からは、今、それは私にすべてのidを与えているコードをコメントしたがそれは私にヌル値と6000のすべての結果jsonをヌル値で与えています。ここ

は、コレクション内のデータのフィールドです: enter image description here

私のスキーマは次のとおりです。

var mongoose = require('mongoose'); 
    var uniqueValidator = require('mongoose-unique-validator'); 
    var autoIncrement = require('mongoose-auto-increment'); 

    var ModelRestaurant = new mongoose.Schema({ 
     name: String, 
     ownerName: String, // to be removed by checking code 
     ownerID: Number, 
     ownerEmail: String, // to be removed by checking code 
     city: String, 
     zipCode: String, 
     image: [String], 
     restaurantType: String, 
     address: String, 
     landmark: String, 
     isAddedByCustomer: { 
      type: Boolean, 
      default: false 
     }, 
     location: { 
      lat: String, 
      long: String 
     } 
    }, 
    { 
     timestamps: true 
    }); 
    ModelRestaurant.plugin(autoIncrement.plugin, 'Restaurants'); 
    ModelRestaurant.plugin(uniqueValidator); 
    mongoose.model('Restaurants', ModelRestaurant); 
+0

を、あなたのスキーマを投稿することができます? –

+0

@ israel.zincにスキーマが追加されました –

+0

重複していると、名前が正しいと思いますか? –

答えて

0

次のコードは、すべての重複印刷する必要があります:

db.ModelRestaurant.aggregate([ 
    {$group:{"_id":"$name","name":{$first:"$name"},"count":{$sum:1}}}, 
    {$match:{"count":{$gt:1}}} 
]) 
+0

何が$ firstと似ていますか? –

+0

Hmm?私はあなたの質問を理解していません。ところで、答えは元のクエリに非常に似ています。 –

+0

、大文字と小文字を確認します –

関連する問題