mongoose返回重复的结果

时间:2014-11-08 23:32:40

标签: node.js mongodb mongoose

mongo和mongoose很新。

我有

var mongoose = require('mongoose'),
errorHandler = require('./errors'),
ClientSummary = mongoose.model('ClientSummary');


exports.list = function(req, res) { ClientSummary.find().sort('-LastName').exec(function(err, clients) {
    if (err) {
        return res.status(400).send({
            message: errorHandler.getErrorMessage(err)
        });
    } else {
        console.log(clients);
        res.jsonp(clients);
    }
});
};

这将返回每个客户端的双重结果

我从控制台复制了这个

[ { _id: '_?\u0007Z?WM???3\u0016?\u0017',
ArchivedDate: Sun Dec 31 0 18:00:00 GMT-0600 (Central Standard Time),
ArchiveDate: Sat Nov 08 2014 17:18:55 GMT-0600 (Central Standard Time),
Archived: false,
Phone: null,
EmailAddress: 'test@test.com',
LastName: 'test',
FirstName: 'test' },
{ _id: '??\u0002otsF???\u000fF\u0010\u0019\n',
ArchivedDate: Sun Dec 31 0 18:00:00 GMT-0600 (Central Standard Time),
ArchiveDate: Sat Nov 08 2014 17:18:55 GMT-0600 (Central Standard Time),
Archived: false,
Phone: null,
EmailAddress: 'test@test.com',
LastName: 'test',
FirstName: 'test' } ]

我从查询中得到了这个

db.clients.find()
{ "_id" : BinData(4,"U/UnaPQyRxqtc1iPJP7Lyw=="), "Contact" : { "FirstName" : "test", "LastName" : "test", "EmailAddress" : "test@test.com", "Phone" : null, "PhoneSecondary" : null }, "Address" : null, "Source" : null, "SourceNotes" : "asdf", "Archived" : false, "ArchivedDate" : ISODate("0001-01-01T00:00:00Z"), "StartDate" : ISODate("0001-01-01T00:00:00Z") }

任何想法都会非常感激

谢谢,

RAIF

1 个答案:

答案 0 :(得分:2)

我不明白为什么你说你在第一个查询中有重复的结果。 _id是不同的,因此看起来有两个不同的对象。

此外,我还认为您拥有的第二个查询引用了不同的集合;即clients,而第一个查询引用集合clientsummary

例如,使用mongo shell,连接到db *,并尝试以下两个:

> show collections

如果我是对的,你的数据库中有clientsclientsummary作为集合。然后,也尝试

> db.clientsummary.count()

这应该返回2。

请注意,您可能会在数据库中使用clientSummary而不是clientsummary作为集合,甚至clientsummarys / clientSummarys或{{1} } / clientsummaries因为mongo / mongoose将使用复数形式来收集,而clientSummaries通常附在引用该集合的单词的末尾。只需使用正确的名称。

(*)您可以使用以下命令连接到db s(可以找到您所指的集合):

mydb

(假设你在localhost上有$ mongo --shell localhost/mydb 。)