mongoose返回重复的结果
对芒果和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
我不明白你为什么说在第一个查询中有重复的结果。 _id
是不同的,所以看起来有两个不同的对象。
此外,我也认为你有第二个查询是指另一个集合; 即clients
,而第一个查询是指收集clientsummary
。
例如,使用mongo shell,连接到db *,并尝试以下两个:
> show collections
如果我是对的,你的clients
和clients
都可以作为数据库中的集合。 然后,也试试
> db.clientsummary.count()
这应该返回2。
请注意,可能是这样的情况,你有客户clientSummary
而不是clientsummary
集合在你的数据库,甚至clientsummarys
/ clientSummarys
或clientsummaries
/ clientSummaries
作为mongo / clientSummaries
将使用复数的集合和s
通常是附加到最后这个词指的是收集。 只需使用正确的名称。
(*)您可以使用以下命令连接到db mydb
(您可以find引用的集合):
$ mongo --shell localhost/mydb
(假设你在本地主机上有mydb
)