使用nodejs查询mongodb以更改字段vaule

时间:2015-08-17 11:01:15

标签: node.js mongodb

我有一个集合,想跟踪mongodb集合中一个字段的值变化。

e.g。我有字段名称,电话,地址的集合。因此,当名称字段的值发生变化时,希望显示结果。 如果名称的结果字段是abc,abc,abc和xyz,xyz,xyz ....,那么我想只显示每个的第一个vaule并用新字段更新它。

所以,最后的结果应该是 - 姓名:abc,New-field:vaule - 第一个结果abc出现 名称:xyz,New-Field:value - xyz occurrence的第一个结果

谢谢!

[更新] 代码 -

var MongoClient = require('mongodb').MongoClient;

MongoClient.connect('mongodb://localhost:27017/course', function(err, db) {
    if(err) throw err;

    var grades = db.collection('grades');

    var cursor = grades.find({});

    var options = {  'sort' : [['grade', -1], ['student', 1]] };
    var cursor = grades.find({}, {}, options);

    cursor.each(function(err, doc) {
        if(err) throw err;
        if(doc == null) {
            return db.close();
        }
        console.dir(doc);
    });
});

输出:

{ _id: { _bsontype: 'ObjectID', id: 'UР[@\f¡\u0013È\u0014' },
  student: 'Amanda',
  assignment: 'hw1',
  grade: 100 }
{ _id: { _bsontype: 'ObjectID', id: 'UР[@\f¡\u0013È\u0017' },
  student: 'Amanda',
  assignment: 'exam',
  grade: 100 }
{ _id: { _bsontype: 'ObjectID', id: 'UР[@\f¡\u0013È\u000f' },
  student: 'Joe',
  assignment: 'exam',
  grade: 100 }
{ _id: { _bsontype: 'ObjectID', id: 'UÑÄòµQ\u000b&ûPri' },
  student: 'Joe',
  grade: 100 }
{ _id: { _bsontype: 'ObjectID', id: 'UР[@\f¡\u0013È\u0012' },
  student: 'Steve',
  assignment: 'hw3',
  grade: 100 }
{ _id: { _bsontype: 'ObjectID', id: 'UР[@\f¡\u0013È\u0013' },
  student: 'Steve',
  assignment: 'exam',
  grade: 100 }

期望的输出:

{ _id: { _bsontype: 'ObjectID', id: 'UР[@\f¡\u0013È\u0014' },
  student: 'Amanda',
  assignment: 'hw1',
  grade: 100,
  new_field: "value" }
{ _id: { _bsontype: 'ObjectID', id: 'UР[@\f¡\u0013È\u000f' },
  student: 'Joe',
  assignment: 'exam',
  grade: 100, 
  new_field: "value" }
{ _id: { _bsontype: 'ObjectID', id: 'UР[@\f¡\u0013È\u0012' },
  student: 'Steve',
  assignment: 'hw3',
  grade: 100,
  new_field: "value" }

0 个答案:

没有答案