protected override void ProcessRecord() { if (!Connection.CollectionExists(Collection)) { WriteWarning($"Collection\t['{Collection}'] does not exist"); } else { try { var col = Connection.GetCollection("$indexes"); string exp = $"$.collection = '{Collection}'"; var indexcol = col.Find(exp); foreach (BsonDocument b in indexcol) { PSObject psObject = new PSObject(); foreach (KeyValuePair <string, BsonValue> kvp in b) { psObject.Properties.Add(new PSNoteProperty(kvp.Key, MSJsonDateConverter.ReadObject(kvp.Value))); psObject.Properties.Add(new PSNoteProperty("Connection", Connection)); } WriteObject(psObject); } } catch (Exception) { throw; } } }
protected override void ProcessRecord() { if (ParameterSetName == "ID") { if (Connection.CollectionExists(Collection)) { var Table = Connection.GetCollection(Collection); var results = Table.FindById(ID); if (results != null) { if (As.ToLower() == "psobject") { var Obj = MSJsonDateConverter.BSONtoPSObjectConverter1(results, Collection); WriteObject(Obj); } else { WriteObject(Connection.Mapper.ToDocument(results)); } } else { WriteWarning($"Document with ID ['{ID}'] does not exist in the collection ['{Collection}']"); } //results not null } else { WriteWarning($"Collection ['{Collection}'] does not exist in the database"); } } else if (ParameterSetName == "Query") { if (Connection.CollectionExists(Collection)) { var Table = Connection.GetCollection(Collection); //var results = Table.Find(Query, Skip, Limit).ToList<BsonDocument>(); if (Where != null) { results = Table.Query().Where(Where).Select(Select).Limit(Limit).Skip(Skip).ToList(); } else { results = Table.Query().Select(Select).Limit(Limit).Skip(Skip).ToList(); } if (results != null) { if (As.ToLower() == "psobject") { foreach (var r in results) { var Obj = MSJsonDateConverter.BSONtoPSObjectConverter1(r, Collection); WriteObject(Obj); } } else { foreach (var r in results) { WriteObject(Connection.Mapper.ToDocument(r)); } } } } else { WriteWarning($"Collection ['{Collection}'] does not exist in the database"); } } else if (ParameterSetName == "Sql") { var results = Connection.Execute(Sql).ToList().Select(x => x.AsDocument); //WriteVerbose($"results is {results} and type is {results.GetType()}"); if (results != null) { if (As.ToLower() == "psobject") { foreach (var r in results) { if (r != null) { var Obj = MSJsonDateConverter.BSONtoPSObjectConverter1(r, Collection); WriteObject(Obj); } } } else { foreach (var r in results) { WriteObject(Connection.Mapper.ToDocument(r)); } } } } else { if (Connection.CollectionExists(Collection)) { var Table = Connection.GetCollection(Collection); var results = Table.Find(Query.All(Query.Descending), Skip, Limit).ToList <BsonDocument>(); if (results != null) { if (As.ToLower() == "psobject") { foreach (var r in results) { var Obj = MSJsonDateConverter.BSONtoPSObjectConverter1(r, Collection); WriteObject(Obj); } } else { foreach (var r in results) { WriteObject(Connection.Mapper.ToDocument(r)); } } } } else { WriteWarning($"Collection ['{Collection}'] does not exist in the database"); } } }